【发布时间】:2011-12-16 17:52:08
【问题描述】:
Rails 3.1 改变了它处理资产管道的方式,并在部署到生产环境时引发了问题。
我正在使用 Apache 和 Passenger,它们似乎工作正常。
我的作品是这样设置的(现在)。
# congif/environments/production.rb
config.cache_classes = false
config.consider_all_requests_local = true
config.action_controller.perform_caching = true
config.serve_static_assets = false
config.assets.compress = true
config.assets.compile = false
config.assets.digest = true
config.action_dispatch.x_sendfile_header = "X-Sendfile" # for apache
我在 Ubuntu 上运行 rake assets:precompile 并启动服务器。没事了。我的图片都没有加载。
传说中的“我在这个 URL 找不到图片”框。
我在 CentOS 上运行 rake assets:precompile 并启动服务器。还有……权限错误。
*Error Compiling CSS Asset*
Errno::EACCESS: Permission Denied - [app path]/tmp/cache/assets/E95
[path to RVM Ruby]/fileutils.rb:243:in 'mkdir'
我不能让它让步。任何帮助是极大的赞赏。谢谢!
更新
这个解决方案每次都对我有用:
首先清理你的资产
rm -rf public/assets
和
rake assets:clean RAILS_ENV=production
其次,在#production.rb 中改变
config.assets.compile = false
到
config.assets.compile = true
第三,运行预编译你的资产
rake assets:precompile RAILS_ENV=production
第四,在#production.rb 中改变
config.assets.compile = true
返回
config.assets.compile = false
第五,通过运行重启你的服务器:
touch tmp/restart.txt
第六,通过运行此命令取消对新创建资产的权限限制
chmod -R 777 公共/资产
第七个,庆祝!!
【问题讨论】:
标签: ruby-on-rails apache deployment production assets