Убедитесь, что у вас это есть в config / environment / production
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
По сути, ваша проблема в том, что ваши ресурсы не компилируются автоматически.
Подробнее здесь: http://devcenter.heroku.com/articles/rails31_heroku_cedar
Редактировать:
Начиная с Rails 3.1 мы будем использовать конвейер Assets.Это означает, что вам нужно поместить все ваши активы (изображения, javascript, css) в app/assets
.До версии 3.1 было бы поместить их в public/**/*
.
В режиме разработки Rails 3.1 собирается автоматически скомпилировать (минимизировать JS и CSS, преобразовать изображения в base64 в некоторых случаях и т. Д.) Все ваши ресурсы, создав небольшой пакет с версиями.
Для практического примера запустите bundle exec rake assets:precompile
в вашем проекте.Посмотрите на новую папку в public/
.Вы можете безопасно удалить его после.
В производственном режиме это не происходит автоматически.Вы можете включить автоматическую компиляцию ресурсов или вручную запустить bundle exec rake assets:precompile
перед развертыванием.
Подробнее о трубопроводе активов http://guides.rubyonrails.org/asset_pipeline.html
Полезно: https://github.com/dnagir/guard-rails-assets