Я установил SSL-сертификат на своей странице, который запускает приложение Node.js + Express, настроил сервер Express всегда на перенаправление на HTTP-сервер, и все работает нормально, за исключением того, что перенаправление https работает только тогда, когда страница перезагружается или когда клавиша Enter снова нажата. Я записал gif, чтобы показать, что происходит:
И вот моя экспресс-конфигурация.
var express = require('express');
var path = require('path');
var serveStatic = require('serve-static');
var forceSsl = function (req, res, next) {
if (req.headers['x-forwarded-proto'] !== 'https') {
return res.redirect(['https://', req.get('Host'), req.url].join(''));
}
return next();
};
app = express();
app.use(serveStatic(__dirname));
if(process.env.NODE_ENV === 'production') {
app.use(forceSsl);
}
app.all('/*', function(req, res) {
res.sendfile('index.html');
});
var port = process.env.PORT || 5000;
app.listen(port);
console.log('server started '+ port);
Мое приложение работает на Heroku. Может ли кто-нибудь помочь мне узнать, что происходит?
Спасибо заранее.