编译CSS资源出错- CHOWN问题



我已经为此头疼了2天多了,似乎不知道问题出在哪里。这主要是与我的设置有关的问题,但如果有人能帮我找到解决这个问题的方法,那么我将永远成为他的奴隶…!

我正在运行雪豹(主机)和VMware融合运行Ubuntu Lucid服务器(客户操作系统)。经过一番努力,我终于把我的工作空间从Mac共享到了Ubuntu。所以,从本质上讲,我已经能够在VM上隔离我的开发环境,这使得整个开发团队可以轻松地在同一个环境中,而不考虑他们的主机操作系统/设置等。虽然,它肯定使一切变得容易,我被困在一个特定的问题发生由于链轮(我猜)。每次修改样式表并重新加载时,我都会得到以下错误:

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都要重新加载两到三次,这真是太可惜了。我在会员和权限方面做过一些尝试,但作为一个业余爱好者,我想我还没有足够深入地冒险。

有什么想法吗?

我有同样的问题。我的解决方案是修改文件权限后预编译资产:

#chown apache.root yourapp -R
#chmod 755 yourapp -R

这个答案有点晚了,但是每次部署应用程序时chmod似乎不是一个好的解决方案。我认为问题是您的apache实例和您的乘客实例作为不同的用户运行。因此,解决方案是检查apache服务器作为什么用户运行,并设置PassengerDefaultUser

例如:

www - data

PassengerDefaultUser

这对我有用。由于乘客使文件只能被任何人读,奇怪的是,如果你只是刷新几次它是如何工作的,但确保他们是相同的用户停止这个错误。

我也遇到过同样的错误,但是是在开发过程中!清理和重新编译资产后解决:

 rake assets:clean && rake assets:precompile

确保底层文件系统支持所请求的操作。下面的命令为我解决了这个问题。

mv public/assets /tmp
ln -s /tmp/assets public/assets

最新更新