Rails 4 と Ruby 2.0 のアセット パイプラインを使用すると、ローカル マシンですべてがうまくいきます。しかし、heroku にデプロイすると、次のことが示されます。
-----> Preparing app for Rails asset pipeline
Running: rake assets:precompile
I, [2013-03-12T03:28:29.908234 #912] INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/rails-2ee5a98f26fbf8c6c461127da73c47eb.png
I, [2013-03-12T03:28:29.914096 #912] INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/trash-3c3c2861eca3747315d712bcfc182902.png
I, [2013-03-12T03:28:33.963234 #912] INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/application-bf2525bd32aa2a7068dbcfaa591b3874.js
I, [2013-03-12T03:28:40.362850 #912] INFO -- : Writing /tmp/build_1n6yi8lwna3sj/public/assets/application-13374a65f29a3b4cea6f8da2816ce7ff.css
Asset precompilation completed (14.36s)
Heroku はファイルをコンパイルするようですが、エラーなしで /tmp に入れます。私の質問は次のとおりです。
- Heroku がアセット ファイルを /tmp にコンパイルするのはなぜですか?
- 私の最後の解決策は、RAILS_ENV=production bundle exec rake assets:precompile をローカルで実行することでしたが、これにより、manifest.yml ではなく public/assets に manifest-xxxxxx.json が生成され、heroku が JSON マニフェスト ファイルを検出しなくなりました。jsonファイルから手動でymlを作成して整理したらherokuが楽になりました。heroku のアプローチは時代遅れですか?