Экспресс статическая маршрутизация не работает с Nginx и NextJS - PullRequest
0 голосов
/ 12 июня 2019

Мой прототип находится на https://www.schandillia.com. Репо можно найти на GitHub на https://github.com/amitschandillia/proost.

У меня есть куча маршрутов, определенных в моем файле конфигурации Nginx следующим образом:

location ^~ /favicon {
    proxy_pass http://127.0.0.1:3000/static/brand/favicons/favicon;
    include /etc/nginx/sites-available/snippets/static-config.conf; # importing static assets configurations
  }

Полный код conf доступен для просмотра на https://github.com/amitschandillia/proost/blob/master/.help_docs/configs/nginx.conf. Я использую NextJS в своем проекте, и у меня есть статический маршрут, определенный в моем server.js (репо: https://github.com/amitschandillia/proost/blob/master/web/server/server.js) как показано ниже:

server.use ('/ _ s', express.static (path.join (__dirname, '..', '.build', 'static')));

Однако, когда я пытаюсь получить доступ к любому ресурсу, расположенному в этой папке, я получаю 404 . Я имею в виду активы, НЕ указанные явно в файле конфигурации Nginx. Разве они не должны быть доступны независимо от того, определены ли они на уровне прокси? Например, у меня есть файл Raleway-Regular.ttf , расположенный по адресу /static/fonts/. Я ожидал, что он будет доступен через https://www.schandillia.com/_s/fonts/Raleway-Regular.ttf,, но все, что я получаю, это 404 .

В чем может быть причина?

Кроме того, следующее определение favicon, похоже, не влияет на доступность favicon.ico для браузера:

server.use (favicon (path.join (__dirname, '..', 'static', 'images', 'icons', 'favicon.ico')));

Файл favicon находится по адресу /static/images/icons/. Фавикон отображается, когда вы посещаете https://www.schandillia.com,, но это то, что определено в моей конфигурации Nginx, а не то, что определено в server.js .

...