1

У меня есть приложение SailsJS , которое я пытаюсь развернуть в Elastic Beanstalk, следуя инструкциям Amazon по NodeJS.

Мой сайт появляется, но на все запросы статических файлов (css, js, images) отвечают 404.

По-видимому, есть два способа сделать это:

1. Служите файлы с помощью SailsJS

npm start , которая является моей командой для запуска сервера, обслуживает эти файлы локально, используя статическое промежуточное ПО Express, и это прекрасно работает на моем компьютере. На сервере эти запросы появляются в журнале доступа nginx, но они не доходят до моего приложения NodeJS. Куда они идут?

2. Служите файлам, используя прокси-сервер nginx

По умолчанию npm start (или sails lift) запускает любой сценарий, необходимый для перемещения статических файлов из assets в .tmp/public , откуда они и должны обслуживаться. Чтобы обслуживать эти файлы с помощью nginx в соответствии с руководством, мне нужно добавить их в файл .ebextensions/staticfiles.config , который теперь выглядит следующим образом:

option_settings:
  aws:elasticbeanstalk:container:nodejs:staticfiles:
    /dependencies: /.tmp/public/dependencies
    /docs: /.tmp/public/docs
    /images: /.tmp/public/images
    /js: /.tmp/public/js
    /min: /.tmp/public/min
    /favicon.ico: /.tmp/public/favicon.ico

Я пробовал:

  • перемещение статических файлов из .tmp/public в static потому что я думал, что скрытая папка .tmp как-то недоступна для nginx
  • проверка в static папке, которая работает, но добавление ее в .gitignore и удаление ее, кажется, приводит к тому, что это не работает.

Похоже, что nginx игнорирует файлы, созданные после запуска команды запуска NodeJS. Как я могу обслуживать мои автоматически сгенерированные статические файлы?

0