Рендеринг на стороне сервера с использованием Nginx выводит HTML-строки - PullRequest
0 голосов
/ 19 декабря 2018

У меня есть vue-ssr проект, не использующий nuxt.js.И сервер express.
Проект запущен на порту 3000.

Когда не использует nginx , посетил ip: 3000, страница работала хорошо .

Когда используя nginx , посетив мой домен, я все еще мог получить строки HTML, но строки не были обработаны , например:

(У меня нет достаточной репутации для публикации изображений.)

html strings.png

И заголовки запроса и ответа, такие как:

request and response headers.png

Вот моя конфигурация nginx:

server {
  server_name mydomain;
  root /my/path;
    location / {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_pass http://localhost:3000;
    proxy_redirect off;
  }
}

Я попробовал конфигурацию, представленную в nuxt.js документах , но тоже не сработало.

1 Ответ

0 голосов
/ 20 декабря 2018

Если удаление заголовка nosniff устранит проблему, это будет означать, что по какой-то причине express не отправляет правильные типы пантомимы с вашими ответами.

Вы можете проверить это, нажав экспресснепосредственно и проверяя возвращаемые заголовки, например:

curl -D - -o /dev/null http://localhost:3000

Если он НЕ возвращает text / html, это может быть признаком того, что вы случайно нарушили тип mime по умолчанию где-то в коде вашего приложения.

...