У меня есть приложение Rails, которое я пытаюсь протестировать в производственной среде. Я запустил, RAILS_ENV=production rake assets:precompile
который сгенерировал все мои активы в / public / assets. Проблема в том, что когда я запускаю свое приложение, RAILS_ENV=production rails s thin
я получаю:
ActionController::RoutingError (No route matches [GET] "/assets/application-eff78fd67423795a7be3aa21512f0bd2.css"):
Этот файл существует, хотя в /public/assets/application-eff78fd67423795a7be3aa21512f0bd2.css
.
Есть мысли, почему я это получаю RoutingError
?
источник
thin
на своей машине для разработки. Я компилировал ресурсы, ноapplication.css
был пуст, и журнал сервера выдал ошибку OP.config.serve_static_files
.config.serve_static_assets
устарела и будет удалена в Rails 5.В дополнение к сказанному Райаном руководство по конвейеру ресурсов Rails описывает, как настроить Apache или nginx для обслуживания статических ресурсов.
http://guides.rubyonrails.org/asset_pipeline.html
Вы действительно должны настроить nginx или Apache для обслуживания статических ресурсов, поскольку они гораздо лучше оптимизированы для этой задачи, чем mongrel / thin / unicorn.
источник
Просто решил ту же проблему. В моем случае ответ Райана не помог. Братше указал на Rails Guides, к сожалению, это не сработало и для меня. Однако ресурс был полезен. Поэтому я взял оттуда конфигурацию Nginx и добавил корневую директиву, указывающую на публичный каталог. Без этого это не работает.
Перезапустите nginx, и все.
источник
На самом деле вам не нужно изменять какие-либо конфигурации по умолчанию. Вы просто перекомпилируете файл ресурсов снова .
удалить общедоступные / активы
составление активов
источник
Rails 4.2 добавил / изменил эту строку в ваших файлах config / environment / staging.rb и production.rb:
Если RAILS_SERVE_STATIC_FILES не установлен, и вы являетесь активами службы с вашего сервера Rails (как с Unicorn), тогда по умолчанию будет установлено значение «false», и произойдет ошибка RoutingError.
Это легко исправить:
источник
В рельсах 5
config.serve_static_files
опция изменилась, так что теперь вам нужно иметьобслуживать активы на местном уровне.
источник
попробуйте код ниже:
конфигурации / среда / production.rb
затем выполните команду:
затем отправьте все файлы компиляции и файл манифеста на сервер.
источник
Я использую Mina + Puma + Nginx для развертывания моего приложения Rails 5, я получил
проверьте config / environment / production.rb
NGINX уже справляется с этим , настройте его корректно
все будет работать нормально.
источник
Если кто-то попал сюда с той же ошибкой в тестовой среде, что и я, вот что мне помогло:
затем:
найти
spring server
процесс и его PID, а затем убить его с помощью:источник