我们一直在使用play!framework 2.0.4一年,SASS
。
我们有了一个新的项目成员,他从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 :(得分: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,产生当前错误。
这是瘦的:您可以通过执行
来评论sass.bat文件的第2行中的if条件REM IF NOT "%~f0" == "~f0" GOTO :WinNT
或者你可以使第6行与第3行相同。在进行修改之后,你的sass编译器会知道在哪里可以找到Ruby SASS。
我喜欢windows,但这不是OS X上预先安装Ruby的问题。有些人试图为ruby / sass创建别名,但问题的根源不是PATH环境变量。
在我的示例中,Ruby安装在C:上使用版本1.93,但同样适用于所有最新版本,包括v2。
我希望这有帮助!
答案 1 :(得分:0)
对于遇到此问题且需要解决问题的所有人,我们发现了
错误Sass compiler: ruby.exe: No such file or directory -- d:/workspace/our-project/sass (LoadError)
表示ruby正在项目根目录中查找名为sass
的文件(不是文件夹)。其原因尚不清楚,如果有人可以做出贡献,仍然需要解释。
这个sass
文件是一个ruby文件,应该存在于c:\Ruby187\bin\sass
的同一个文件,它基本上就是sass插件ruby代码。
因此,快速解决此问题的方法是在根目录下复制该文件。
这为我们解决了这个问题。
我仍然需要解释为什么会发生这种情况。
答案 2 :(得分:0)
这似乎不适用于使用litola sass-plugin 0.4.0播放2.3.x.如果我将sass目录放在我的项目中。 target / scala-2.11 / classes / public / xxx下的输出css文件都是0大小。 有什么建议?还在调查。
已达到解决方案,无需将sass windows脚本复制到工作区。 这个插件有效:https://github.com/ShaggyYeti/sbt-sass正在播放2.3.x. QED