Comprueba que tienes esto en config/environments/production
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Básicamente, su problema es que sus activos no se compilan automáticamente.
Más información aquí:http://devcenter.heroku.com/articles/rails31_heroku_cedar
Editar:
Desde Rails 3.1 vamos a utilizar la canalización de Activos. Esto significa que debe colocar todos sus activos (imágenes, javascript, css) en app/assets
. Antes de 3.1, los colocaría en public/**/*
.
En el modo de desarrollo, Rails 3.1 compilará automáticamente (minimizará tanto JS como CSS, transformará las imágenes a base64 en algunos casos, etc.) todos sus activos, creando un pequeño paquete versionado.
Para un ejemplo práctico, ejecute bundle exec rake assets:precompile
en tu proyecto Eche un vistazo a la nueva carpeta en public/
. Puede eliminarlo de forma segura después.
En el modo de producción esto no es automático. Puede habilitar la compilación automática de los activos o ejecutar manualmente bundle exec rake assets:precompile
antes del despliegue.
Más información sobre la canalización de activoshttp://guides.rubyonrails.org/asset_pipeline.html
Útil:https://github.com/dnagir/guard-rails-assets