【问题标题】:Rails sprocket Error compiling CSS assest - CHOWN issueRails sprocket 编译 CSS 资产时出错 - CHOWN 问题
【发布时间】:2011-09-26 14:36:03
【问题描述】:

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

我正在运行 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 更改都重新加载页面两次或三次,真是太可惜了。我玩过一些会员资格和权限,但作为一个业余爱好者,我猜我还没有足够深入地冒险。

大家有什么想法吗??

【问题讨论】:

  • 我很确定这是文件系统权限问题。
  • @thomasfedb 是的,我很确定它是一样的......虽然真的无法弄清楚为什么它每次都会发生两次/三次,然后就可以正常工作!

标签: ruby-on-rails ruby-on-rails-3.1 vmware sprockets vmware-fusion


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    例如:

    PassengerDefaultUser www-data

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

    【讨论】:

    • 你是如何改变这个的?
    【解决方案3】:

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

     rake assets:clean && rake assets:precompile
    

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-04-25
        • 1970-01-01
        • 2013-10-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多