Heroku不会在Rails 4的资产管道下编译文件
在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中,没有任何错误。 我的问题是:
由于Rails 4不支持插件,Heroku的资产插件不再适用。 您需要使用Heroku的资产宝石。 把它放在你的Gemfile中:
group :production do
gem 'rails_log_stdout', github: 'heroku/rails_log_stdout'
gem 'rails3_serve_static_assets', github: 'heroku/rails3_serve_static_assets'
end
按照Heroku的指南开始使用Rails 4。
更新(2013年7月22日):Heroku现在为预编译资产提供了不同的gem。
group :production do
gem 'rails_12factor'
end
您需要配置Rails以在生产环境中提供静态资源:config / environments / production.rb
SampleApp::Application.configure do . . . config.serve_static_assets = true . . . end
更新:
在Rails 4中已被弃用,并已被更改为:
config.serve_static_files = true
由于rails 4将manifest.yml替换为manifest-(fingerprint).json,因此您需要启用静态资产服务。
从Heroku入门到Rails 4.x:
gem 'rails_12factor', group: :production
然后
bundle install
最后,
git push heroku
解决了我的问题。 希望这可以帮助!
链接地址: http://www.djcxy.com/p/79989.html上一篇: Heroku does NOT compile files under assets pipelines in Rails 4