注: この投稿は Rails3.2.x を対象としています
assets:precompile 遅いですよね。
特にデプロイ時に気になることが多いかと思います。
capfile で頑張るのもいいですが、
turbo-sprockets-rails3 という gem を使うとスマートに解決します。
使い方
使い方は簡単。Gemfile に記述するだけ。
Gemfile
group :assets do
...
gem 'turbo-sprockets-rails3'
end
確認
bundle
rake assets:precompile
もう一度
rake assets:precompile
早くなりましたか?
動作について①
assets:precompile 時に fingerprint を生成、
以降変更がなければスキップしてます。
Capistrano
Capistrano にも対応しています。capfile を変更する必要はなく、
普通に cap deploy で意図した通りに動いてくれています。
動作について②
Capistrano を利用したデプロイでは、
生成物を「デプロイルートディレクトリ/shared/assets」に配置し、
public/assets から symlink を貼って対応しています。
Rails4
Rails4 では rails 用に最適化された sprockets-rails を採用することによって
assets:precompile の速度が大幅に向上するようです。