我已经超过2天了解这个问题,似乎无法弄清楚问题出在哪里。这主要是与我的设置有关的问题,但是如果有人能帮我找到这个问题的解决方案,那么我将永远成为他的奴隶..!
我正在运行Snow leopard(主机)和运行Ubuntu Lucid服务器(客户操作系统)的VMware fusion。不知何故,经过大量的轰炸,我设法将我的工作空间从Mac共享到Ubuntu。因此,基本上我已经能够在虚拟机上隔离我的开发环境,这使得整个开发团队可以轻松地在相同的环境中,无论其主机操作系统/设置等等。同时,它确实使一切变得简单,我因为链轮而遇到了一个特定的问题(我猜)。每次我更改样式表并重新加载时,都会收到此错误:
Error compiling CSS asset
Errno::EPERM: Operation not permitted - /mnt/hgfs/banjarey/tmp/cache/assets/DCF/780/sprockets%2F5f78b3457def1d02bd3fb75d4e0cfb63
/home/coderboy/.rvm/gems/ruby-1.9.2-p290/gems/activesupport-3.1.0/lib/active_support/core_ext/file/atomic.rb:38:in `chown'
尽管如此,如果我重新加载页面两次或三次,css编译并且一切正常。
对于我做的每一次css更改,重新加载页面两次或三次真是太遗憾了。我已经玩了一些会员资格和权限了,但我是一个业余爱好者,我猜想我没有足够的冒险。
任何想法的人?
答案 0 :(得分:2)
我有同样的问题。我的解决方案是在预编译资产后修改文件权限:
#chown apache.root yourapp -R
#chmod 755 yourapp -R
答案 1 :(得分:2)
这个答案有点晚了,但每次应用程序部署时chmod似乎都不是一个好的解决方案。我认为问题是你的apache实例,你的乘客实例是以不同的用户身份运行的。因此,解决方案是检查您的apache服务器正在运行的用户并设置PassengerDefaultUser,
例如:
PassengerDefaultUser www-data
这对我有用。由于Passenger正在制作的文件只能被任何人阅读,很奇怪的是,如果你只是刷新了一些它的一些方法,但确保它们是同一个用户会停止此错误。
答案 2 :(得分:1)
我遇到了同样的错误,但在开发中! 清理并重新编译资产后解决:
rake assets:clean && rake assets:precompile
答案 3 :(得分:0)
确保基础文件系统支持所请求的操作。 以下命令为我修复了它。
mv public/assets /tmp
ln -s /tmp/assets public/assets