6

我已经为此烦恼了两天多,似乎无法弄清楚问题出在哪里。这主要是与我的设置有关的问题,但是如果有人可以帮助我找到解决此问题的方法,那么我将永远成为他的奴隶..!

我正在运行 Snow leopard(主机)和 VMware fusion,运行 Ubuntu Lucid 服务器(来宾操作系统)。不知何故,经过多次头疼后,我设法将我的工作空间从 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 更改都重新加载页面两次或三次,真是太可惜了。我玩过一些会员资格和权限,但作为一个业余爱好者,我想我还没有足够深入地冒险。

任何想法的人?

4

4 回答 4

2

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

#chown apache.root yourapp -R
#chmod 755 yourapp -R
于 2011-10-17T12:52:04.903 回答
2

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

例如:

乘客默认用户 www 数据

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

于 2012-10-18T08:09:43.387 回答
1

我遇到了同样的错误,但在开发中!清理并重新编译资产后解决:

 rake assets:clean && rake assets:precompile
于 2013-06-27T16:34:40.687 回答
0

确保底层文件系统支持请求的操作。以下命令为我修复了它。

mv public/assets /tmp
ln -s /tmp/assets public/assets
于 2014-04-21T10:41:03.933 回答