加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读