在 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,但这会在 public/assets 中生成 manifest-xxxxxx.json,而不是 manifest.yml,因此 heroku 不会检测到 JSON 清单文件。我通过从 json 文件手动创建一个 yml 来整理它,heroku 变得很高兴。heroku 的方法已经过时了吗?