Express.js не перенаправляет на страницу обслуживания по запросу по умолчанию - PullRequest
0 голосов
/ 17 июня 2019

Я пытаюсь перенаправить пользователя на страницу обслуживания, пока я работаю на сайте, но по какой-то причине он делает это, только если у меня есть что-то, кроме базового URL в браузере. Пример: на клиенте, если я перехожу на http://example.com/, он загружает страницу, но если я перехожу на http://example.com/somewhere-else, он правильно перенаправляет на страницу обслуживания. Как я могу прослушивать и перехватывать ВСЕ HTTP-запросы независимо от пути и правильно их маршрутизировать? xxx.xxx.xxx.xxx представляет мой IP-адрес. Я проверил это на своем компьютере и на моем телефоне с отключенным Wi-Fi (используя сотовую связь).

    const express = require('express');
    const path = require('path');
    const app = express();
    app.use(express.static(path.join(__dirname, 'build')));

    app.get('/ping', function (req, res) {
        return res.send('pong');
    });

    app.get('*', function (req, res) {
        var ip = req.headers['x-forwarded-for'] || req.connection.remoteAddress;
        if (ip.substr(0, 7) == "::ffff:") {
            ip = ip.substr(7)
        }

        if (ip == "xxx.xxx.xxx.xxx") {
            res.sendFile(path.resolve(__dirname, 'build', 'index.html'));
        }
        else {
            res.sendFile(path.resolve(__dirname, 'build', 'construction.html'));
        }
    });

    app.listen(process.env.PORT || 80);

1 Ответ

0 голосов
/ 17 июня 2019

Пожалуйста, измените следующее

app.get('*' to app.get('/'

Затем он должен перенаправить все вызовы по умолчанию на страницу обслуживания.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...