ruby-on-rails – Rails 3.1部署到生产(使用Apache和Passenger)
发布时间:2020-12-16 21:36:31 所属栏目:百科 来源:网络整理
导读:Rails 3.1改变了处理资产管道的方式,并且在部署到生产时引起问题. 我正在使用Apache和Passenger,这似乎工作正常. 我的生产是这样设置的(现在). # congif/environments/production.rbconfig.cache_classes = falseconfig.consider_all_requests_local = truec
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 我运行rake资产:在Ubuntu上预先编译并启动服务器.没有什么.我的图像都不加载. 传说中的“我在这个网址找不到图像”框. 我运行rake资产:在CentOS上预编译并启动服务器.而…权限错误. *Error Compiling CSS Asset* Errno::EACCESS: Permission Denied - [app path]/tmp/cache/assets/E95 [path to RVM Ruby]/fileutils.rb:243:in 'mkdir' 我不能让它发抖.任何帮助是极大的赞赏.谢谢! UPDATE 这个解决方案每次都为我工作: 首先清理你的资产 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公共/资产 第七,庆祝! 解决方法
这是一个简单的权限问题.给服务器/守护进程以[app_path] / tmp递归创建文件的权利.
假设您的服务器进程与www数据用户一起运行,您可以执行以下操作: cd APP_PATH chmod -R u+w tmp 如果目录不属于用户,则必须更改所有权: chown -R www-data tmp (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |