0

我的网站在 Zend Framework 上,使用 Assetic 编译 SCSS 并缩小它。

当我在 Ubuntu 上开发时,它工作得非常好。

有时我需要在 Windows (WAMP) 而不是 Ubuntu 上进行开发。

我无法让 Assetic 在 Windows 上工作。

我发现了很多关于它的问答,但似乎没有答案适用于我。例如,我认为我在任何地方都没有 config.yml 文件。

如何让 Assetic + sass 在 Windows 中与 Symfony2 一起工作?

如何在 Windows 下的 Symfony2 中使用 SCSS 过滤器?

这是一个错误: Assetic\Exception\FilterException: An error occurred while running: "C:\Ruby193\bin\sass.bat" "--load-path" "C:\code\branches\signup-and-login\scss" "--scss" "--cache-location" "C:\Windows\Temp" "C:\Windows\Temp\assCCF2.tmp" Error Output: The filename, directory name, or volume label syntax is incorrect.

想法?

4

1 回答 1

0

我想我让它工作了,但我不是 100% 确定我可以重现修复它的步骤。

因此,如果您找到更好的细节,请添加新答案。

我已将 Ruby 安装在C:\Ruby193\. 我需要将其“bin”文件夹中的 sass.bat 文件编辑为:

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

我读了https://github.com/symfony/AsseticBundle/issues/81

我将 C:\wamp\bin\php\php5.3.10\PEAR\pear\Symfony\Component\Process\Process.php 中的文件替换为https://raw.github.com/symfony/Process/master/Process。 .php _

我不知道这是否重要,但 Assetic 使用的是正斜杠而不是名为 DIRECTORY_SEPARATOR 的 PHP 常量,所以:

在 Assetic\Filter\Sass\SassFilter.php 中,我添加了 $root = str_replace('/', DIRECTORY_SEPARATOR, $root);//fix for Windows 之后 $root = $asset->getSourceRoot();

稍低于此,我将一行更改为$pb->add('--load-path')->add(dirname($root.DIRECTORY_SEPARATOR.$path));.

于 2012-06-18T18:12:41.570 回答