RailsのAsset Pipelineの対応で、
# config/environments/production.rb config.assets.compile = true
で逃げていたのですが、稼働中のサーバに対して無駄なリソース使うことになるのでイケてないと思い、対応しようと思った時のメモです。
productionで動作させるときには、
app/assets/javascripts/application.js
app/assets/stylesheets/application.css
config/environments/production.rbのconfig.assets.precompile
等を編集しただけではダメで、
bundle exec rake assets:precompile
で、プリコンパイルしておく必要があるので、実行しておきます。
で、serverをproductionで実行。
・・・あれ?
cssやjsが404となります。
生成されたhtml見ても該当するファイル名はpublic/assetsに存在します。
ブラウザから直接叩いても404です。
試しにHerokuにあげてみると、問題なく動作している模様。
不思議な状況です。
google先生に聞いてみると、このような情報が!
Rails3.2で production にした途端にapplication.css が参照できなくなる:お題目うぉっち
config/environments/production.rbの「config.serve_static_assets」を
コメントアウトすることできちんと動作しました。