我在 OS X Lion 上运行 Parallels Desktop 7。我有一台安装了 Debian 的虚拟机,并在该虚拟机内设置了一个 Rails 开发环境。我使用 Parallels Tools 将我的 OS X 主目录共享给虚拟机 - 此处的目标是在虚拟机上运行 Rails 服务器,但在 OS X 上托管文件(这样它们就会自动备份,这样我就可以使用 Textmate 等工具进行开发)。
共享目录似乎一切正常 - 我的 Debian 用户可以读取、写入和执行文件。但是,当我从 Git 克隆最近的 Rails 项目时,在尝试编译 CSS 资源时收到一条错误消息。我的症状与问题完全相同:https://stackoverflow.com/questions/7556774/rails-sprocket-error-compiling-css-assest-chown-issue
我相信这是基于权限的,但这确实很奇怪。我的整个 Rails 项目目录的权限设置为 777,并且我的 Debian 用户拥有它。如果我导航到 /tmp/cache/assets,这些权限是相同的。但是,Rails 正在创建的三个字符目录(DCE、DA1、D05 等)是在没有写入权限的情况下创建的!
如果我刷新 Rails 页面几次,大约 4 或 5 次(Rails 每次都会创建新的三个字符的目录),最终它将创建一个具有适当 777 权限的目录,并且一切都将正常工作!这种情况将持续存在,直到我对 CSS 文件进行更改并且必须重新编译。
有人知道这里发生了什么吗?我无法理解为什么它会创建具有不正确权限的临时目录,或者为什么在几次刷新后良好的权限就会生效并且它可以正常工作...
这肯定是共享的问题,因为如果我将项目移动到虚拟机上的其他目录中,它似乎可以正常工作。在 OS X 方面,我也为共享文件夹赋予了 777 权限,但没有任何效果...有什么想法吗?
更新
我发现,我需要刷新的次数并不是随机的——它与编译的资产数量有关。例如,如果我编辑我的一个 CSS 文件,并且 app/assets/stylesheets 目录中有四个 CSS 文件,我必须刷新四次,应用程序才能最终运行,而不会出现操作不允许的错误...
答案1
我遇到了和你一模一样的问题。刷新页面几次后,“操作不允许”就消失了,但每当 Rails 应用更新其缓存时,问题就会再次出现。我在 VMWare 中没有遇到过这种错误(VMWare 在共享文件夹中还有另一个烦人的问题,但那是另一回事了)。
您解决这个问题了吗?
而且,我知道这不是答案,但我真的没有其他地方可以留言。