Rails - image.png не скомпилировано
Я пытаюсь развернуть веб-приложение на серверах Amazon EC2, и у меня есть код на сервере. Все выглядит так, как будто оно работает, но когда я захожу на домашнюю страницу, я получаю сообщение об ошибке 500 и production.log
файл дает мне следующую ошибку:
ActionView::Template::Error (image.png isn't precompiled)
Я пробовал бегать
rake assets:precompile
,Я изменил строку в
config/environments/production.rb
вconfig.assets.compile = true
- Я проверил, что скомпилировано
image.png
вpublic/assets/manifest.yml
но я все еще получаю ту же ошибку.
Я использую Rails 3.2.6 и Ruby 1.8.7.
Спасибо за вашу помощь!
4 ответа
Бег rake assets:precompile RAILS_ENV=production
должен это исправить. Если вы не предоставите RAILS_ENV
Rails предполагает, что это development
Я считаю, что это потому, что каждый env в конвейере активов ведет себя по-разному. Поэтому, как правило, на производстве всегда запускайте грабли с RAILS_ENV='production', и вы должны оставаться в безопасности:)
Рад, что смог помочь
Я использую Openshift от Redhat и при развертывании на сервере он автоматически отправляется в производственную среду. У меня тоже была такая же проблема, но только на рабочем сервере.
Выполнение изменения:
config / environment /production.rb в config.assets.compile = true
работал лакомство В этом файле есть другой параметр, который вы можете изменить:
config.assets.precompile + =% w [*.png *.jpeg *.jpg *.gif]
При развертывании на сервере вы можете сделать это вручную:
грабли RAILS_ENV= производство
или если вы используете сервер, такой как Openshift, который развертывается автоматически, конфигурации в файле production.rb будут приняты во внимание.
Надеюсь, что это помогает другим людям, имеющим ту же проблему.
Деннис
В config/application.rb
добавить строку как:
config.assets.precompile += ['image.png']
Хотя, если его в public/assets/images
ты не должен был
Решено - нужно бежать rake assets:precompile RAILS_ENV='production
вместо просто rake assets:precompile
...
Надеюсь это поможет