aqu*_*ach 77 heroku asset-pipeline ruby-on-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)
Run Code Online (Sandbox Code Playgroud)
Heroku似乎编译文件,但把它放在/ tmp没有任何错误.我的问题是:
Jos*_*ber 102
Heroku的资产插件不再有效,因为Rails 4不支持插件.你需要使用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
Run Code Online (Sandbox Code Playgroud)
按照Heroku的指南如何开始使用Rails 4.
group :production do
gem 'rails_12factor'
end
Run Code Online (Sandbox Code Playgroud)
Isr*_*rba 33
您需要配置Rails以在生产中提供静态资产:config/environments/production.rb
SampleApp::Application.configure do . . . config.serve_static_assets = true . . . end
更新:
在Rails 4中已弃用,并且已被更改为:
config.serve_static_files = true
Run Code Online (Sandbox Code Playgroud)
小智 16
由于rails 4将manifest.yml替换为manifest-(fingerprint).json,因此您需要启用静态资产服务.
gem 'rails_12factor', group: :production
Run Code Online (Sandbox Code Playgroud)
然后
bundle install
Run Code Online (Sandbox Code Playgroud)
最后,
git push heroku
Run Code Online (Sandbox Code Playgroud)
解决了我的问题.希望这可以帮助!
Bot*_*oti 14
我遇到了同样的问题.
我在environment/production.rb文件中设置config.serve_static_assets = true,直到heroku不支持新的清单格式.
所以这是一个时间解决方案,直到添加heroku支持.
Pat*_*kEm 13
经过几个小时的谷歌搜索没有Heroku的指南或StackOverFlow上的建议帮助了我,我终于遇到了这个提供这个线索的博客文章:
heroku labs:enable user-env-compile --app=YOUR_APP
Run Code Online (Sandbox Code Playgroud)
如果没有这个,资产管道将始终尝试初始化整个应用程序并连接到数据库(尽管你可能已经阅读过所有关于rails 4现在更长的事情).这会将您的Heroku配置暴露给Rails,以便它可以成功启动并运行rake任务,如assets:precompile.
我需要使用这个gem:
gem 'rails_12factor', group: :production #need this for rails 4 assets on heroku
Run Code Online (Sandbox Code Playgroud)
在/config/environments/production.rb中,我需要设置:
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)
我的理解是rails_12_factor宝石套装config.serve_static_assets = true等等.
| 归档时间: |
|
| 查看次数: |
41323 次 |
| 最近记录: |