Nuxt отображает прокси-страницу в виде файла .gz, но только при развертывании - PullRequest
1 голос
/ 04 апреля 2020

Мы боролись с этим уже пару дней. См. Здесь: как избежать HTTP-кода состояния 404. При ошибке nuxt. vue

Решение, которое прекрасно работает в dev, заключается в том, чтобы проксировать все эти псевдо-маршруты. Не больше 404, и страница загружается нормально, но .... при развертывании в Heroku страница необъяснимо отправляется в виде файла .gz!

Вот код промежуточного программного обеспечения:

const httpProxy = require('http-proxy');
const proxy = httpProxy.createProxyServer();

export default (req, res, next) => {
    if (req.url.startsWith('/PROXIED/') || req.url == '/') {
        next();
    } else {
        proxy.once('proxyRes', (proxyRes, _req, _res) => {
            // proxyRes.writeHead(200, null, {
            //  'Content-Type': 'text/html'
            // });
            proxyRes.pipe(_res);
        });

        const target = `${serverUrl}/PROXIED`;
        proxy.web(req, res, {
            target,
            selfHandleResponse: true
        }, next);
    }
};

Приложение работает в режиме SSR, если это что-то меняет.

Если у кого-то есть предложения, как правильно получить маршрут типа "/ pseudo-route", используя Nuxt, без отправки статус 404, и желательно без необходимости использовать ошибку. vue ... Я хотел бы услышать это. Подсказка: маршруты Dynami c не являются ответом.

...