Vérifiez que vous avez ceci dans config/environments/production
# Fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = true
Fondamentalement, votre problème est que vos actifs ne sont pas automatiquement compilés.
Plus d'informations ici :http://devcenter.heroku.com/articles/rails31_heroku_cedar
Modifier :
À partir de Rails 3.1, nous allons utiliser le pipeline Assets. Cela signifie que vous devez mettre tous vos actifs (images, javascript, css) dans app/assets
. Avant la version 3.1, les mettre dans public/**/*
.
En mode développement, Rails 3.1 va automatiquement compiler (minifier à la fois JS et CSS, transformer les images en base64 dans certains cas, etc.) tous vos actifs, créant un petit package versionné.
Pour un exemple pratique, exécutez bundle exec rake assets:precompile
dans votre projet. Jetez un œil au nouveau dossier dans public/
. Vous pouvez ensuite le supprimer en toute sécurité.
En mode production, ce n'est pas automatique. Vous pouvez soit activer la compilation automatique des actifs, soit exécuter manuellement bundle exec rake assets:precompile
avant le déploiement.
Plus d'informations sur le pipeline d'actifshttp://guides.rubyonrails.org/asset_pipeline.html
Utile :https://github.com/dnagir/guard-rails-assets