Edited at

Rails4なのにassets:precompileが遅い

More than 3 years have passed since last update.

地味にはまったのでメモ。


前提


  • Capistrano 2系


現象


  • ローカルとかでprecompileしてると2回目は早い。

  • でも、Capistranoでデプロイする時は毎回遅い。


  • assetsに変更がないのに遅い。

  • サーバにログインして、rake assets:precompileするとは普通に早い。

こんな状況だった。

結論としては、deploy.rbの設定を変更して


deploy.rb

set :shared_children, ['system', 'log', 'pids', 'tmp/cache']


という感じで、tmpshared配下に置くようにしたら二回目からは早くなった。

tmp/cache/assetsにも大事な情報があるみたい。

まぁ、以前の情報があるから早いというのはわかるんだけど、Capistranoのデフォルト設定ではないというのが少し気にかかっている…。

もっと良いやり方などがあるのだろうか…?

Capistrano 3系では、shared_childrenlinked_dirsに変わっているので


deploy.rb

set :linked_dirs, ['system', 'log', 'pids', 'tmp/cache']


とすれば良さそう。(@hidechaeさんご指摘ありがとうございます。)