Assets pipeline : precompile assets avec Capistrano

La solution ultime à tous mes problèmes de déploiement.

1) Mettre ceci dans environments/production.rb :

config.assets.precompile += ["*.css", "*.js"]

ça permet de dire à rails de précompiler les css et js en plus des *.coffee *.scss...

2) Mettre ceci dans un before "deploy:create_symlink" do ... end dans le deploy.rb

run_locally "bundle exec rake assets:precompile"
run_locally "cd public; tar -zcvf assets.tar.gz assets"
top.upload "public/assets.tar.gz", "#{release_path}/assets/images/", :via => :scp
run "cd #{release_path}/public; tar -zxvf assets.tar.gz"
run_locally "rm public/assets.tar.gz"
run_locally "rm -rf public/assets"

ça a pour effet de faire le précompile en local, puis compresse les assets les upload dans release_path/public et enfin les extraits.

Lors d'une migration d'une vieille application rails <3.1 vers rails >3.1 il faut également 

- changer les chemins des images "../images/" en "/assets/"

- Faire un meld (comparateur de fichier et répertoire) pour mettre à jour la structure et l'intérieur des fichiers entre l'application et une application vide (rails new empty)

- Pensez également au Gemfile (doit être fait à l'étape précédente)

Bon voilà si vous avez des remarques utilisez twitter (@rivsc57) j'en ai marre du spam...