発端
普段は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タスクが実行されました。めでたしめでたし(泣