Sprawdź, czy masz to w config/environments/production
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Zasadniczo Twoim problemem jest to, że Twoje zasoby nie są automatycznie kompilowane.
Więcej informacji tutaj:http://devcenter.heroku.com/articles/rails31_heroku_cedar
Edycja:
Od Rails 3.1 będziemy używać potoku Assets. Oznacza to, że musisz umieścić wszystkie swoje zasoby (obrazy, javascript, css) w app/assets
. Przed wersją 3.1 to umieściłoby je w public/**/*
.
W trybie programistycznym Rails 3.1 automatycznie skompiluje (zminimalizuje zarówno JS, jak i CSS, w niektórych przypadkach przekształci obrazy do base64, itp.) wszystkie Twoje zasoby, tworząc mały, wersjonowany pakiet.
Aby uzyskać praktyczny przykład, uruchom bundle exec rake assets:precompile
w Twoim projekcie. Spójrz na nowy folder w public/
. Możesz go później bezpiecznie usunąć.
W trybie produkcyjnym nie jest to automatyczne. Możesz włączyć automatyczną kompilację zasobów lub ręcznie uruchomić bundle exec rake assets:precompile
przed wdrożeniem.
Więcej informacji o potoku zasobówhttp://guides.rubyonrails.org/asset_pipeline.html
Przydatne:https://github.com/dnagir/guard-rails-assets