Приложение RoR: ресурс «application.css» отсутствует в конвейере ресурсов после перехода на рабочий сервер.

после переноса моего приложения Ruby on Rails на производственный сервер (AWS EC2 Amazon Linux 2018.03) страницы не отображаются из-за ошибки «Ресурс application.css отсутствует в конвейере ресурсов» (предварительно скомпилированные файлы представлены в общедоступных/ активы): production.log

Однако, когда я обновляю свое приложение (иногда более одного раза), этот файл находится в кеше, и страница отображается правильно. Похоже, сервер не ждет прекомпиляции файла или что-то в этом роде. Это происходит не только при входе на первую страницу, но и при каждом изменении вида.

Я следовал советам из сообщения: application.css не в конвейере ресурсов, но он не помогло.

Мой стек:

  • рубин 2.6.3
  • рельсы 5.2.3
  • Единорог 5.5.1
  • нгинкс 1.14.1

Буду очень благодарен за любые подсказки.


person Artur    schedule 25.06.2019    source источник


Ответы (1)


Вы можете подтвердить, что ваша папка app/assets/stylesheets должна иметь файл application.css, и вам нужно будет предварительно скомпилировать активы в производственной среде, прежде чем запускать/запускать сервер в производственной среде. Вы можете предварительно скомпилировать активы, используя

RAILS_ENV=production rails assets:precompile

Если это все еще не работает, вы можете попробовать установить для параметра config.assets.compile значение true в файле production.rb, чтобы компиляция выполнялась в реальном времени. Хотя это должно быть ложным в производственной среде, поскольку это влияет на производительность.

config.assets.compile = true
person Praveen    schedule 25.06.2019
comment
К сожалению, это не помогло - person Artur; 25.06.2019
comment
Я думаю, что первой командой должен был быть rake, а не rails, т.е. RAILS_ENV=production rake assets:precompile - person Precious George; 16.10.2020