動かざることバグの如し

近づきたいよ 君の理想に

Capistrano+Railsでassets:precompileが実行されない件

発端

普段はRailsのデプロイにcapistrano3を使ってるんだが、デプロイしてもCSSとJSが読み込まれずに404に。。

よく見るとassets/imagesに入れた画像も404に。ローカル環境だともちろん正しく表示される。でも、Capistranoのログをよく見ると、そもそもassets:precompileが実行されてない。

あれ、Capfile間違えたかなーと思って確認するけどちゃんと以下のようにrequireされてる。

require "capistrano/rails/assets"

原因

rolesにwebがないのが原因config/deploy/production.rbでデプロイ先のホストを指定するが、こうなっていた。

server 'host01', roles: %w(app)
server 'host01', roles: %w(app web)

webを追加すると無事にassets:precompileタスクが実行されました。めでたしめでたし(泣

参考リンク