2013-09-30 26 views
1

我们已经使用play!framework 2.0.4一年了,现在有SASSsass插件发挥作用!framework 2.0.4抛出错误

我们得到了一个新的项目成员,他从sass得到一个非常奇怪的错误。

Sass compiler: ruby.exe: No such file or directory -- d:/workspace/our-project/sass (LoadError) 

计算机正在运行Windows 7

我可以告诉你,我们与红宝石的问题为好。

由于某种原因irb命令失败。但是,我们固定它通过改变HOME环境变量从%USERPROFILE%c:\Users\name

我已经看到了谷歌群体这个问题太值,但没有一个解决方案

https://groups.google.com/d/msg/play-framework/j1npLLQlj1o/POOlePhJv1QJ

我怎样才能解决这个问题?

回答

0

对于大家谁遇到这个问题,需要一个工作变通,这里是我们发现

错误Sass compiler: ruby.exe: No such file or directory -- d:/workspace/our-project/sass (LoadError)意味着红宝石正在寻找一个文件(不是文件夹)命名sass在项目根目录下。其原因尚不清楚,如果有人能够贡献,仍然需要解释。

sass文件是一个红宝石文件,应该存在于c:\Ruby187\bin\sass基本上是sass插件红宝石代码的文件。

因此,一个快速解决此问题的方法是将复制该文件放在您的根目录下。

这解决了我们。

我仍然需要一个解释,为什么这首先发生。

3

我从来没有去过很多补丁或变通的粉丝,所以我会尽我所能来分析是怎么回事就在这里:

该剧框架是没有什么兴趣的此基于错误您在上面的帖子中突出显示的消息,因此我们将从此处开始。

我们有sass编译器正在调用ruby,它抱怨加载错误。很公平。乍看之下,由于ruby.exe错误信息,人们会认为应该指责ruby配置。然而,我们发现它确实在寻找一个文件,即sass.bat,所以我好奇的目光把我带到那里。

因此,我们发现,该批处理文件包含以下内容:

1 @ECHO OFF 
2 IF NOT "%~f0" == "~f0" GOTO :WinNT 
3 @"ruby.exe" "C:/Ruby193/bin/sass" %1 %2 %3 %4 %5 %6 %7 %8 %9 
4 GOTO :EOF 
5 :WinNT 
6 @"ruby.exe" "%~dpn0" %* 

所以在这个脚本6个命令行,不算太糟糕。通过检查,我注意到第2行有一个if条件,它依赖于正在执行的所有参数或全名。在Windows 7上测试时,这种情况似乎被认为是错误的,所以我们总是在第6行结束。这个问题的关键是在Windows上运行Ruby的机器。基本上,我们有一个“跳转子程序”或GOTO指令来在脚本中打WinNT,所以我们在当前目录中寻找sass.bat,从而产生你当前的错误。

这里的瘦:您可以通过

REM IF NOT "%~f0" == "~f0" GOTO :WinNT 

发表意见,如果条件在sass.bat文件的第二行,或者你可以让6号线相同的3行进行修改后,您顶嘴编译器会知道在哪里可以找到Ruby SASS。

我喜欢windows,但这在OS X上并不是问题,因为预装了Ruby。有些人试图为ruby/sass创建别名,但问题的根源不是PATH环境变量。

在我的示例中,Ruby安装在C:使用1.93版本上,但同样适用于包括v2在内的所有最新版本。

我希望这有助于!

+0

高超的回答,我花了很多时间在解决这个问题上比最后这个解决方案的工作 –

0

这似乎不适用于使用litola sass-plugin 0.4.0播放2.3.x。如果我将sass目录放在我的项目中。目标/ scala-2.11/classes/public/xxx下的输出css文件全部为0大小。 有什么建议吗?仍在调查。

已达到解决方案,无需将sass窗口脚本复制到工作区中。 这个插件的工作原理:https://github.com/ShaggyYeti/sbt-sass玩2.3.x. QED