Php 如何在Windows上以Symfony2设置指南针?

Php 如何在Windows上以Symfony2设置指南针?,php,ruby,symfony,sass,compass,Php,Ruby,Symfony,Sass,Compass,我总是使用Linux操作系统,但我需要检查其他人在Windows下的操作。我已经建立了一个xampp包和一个symfony2框架 config.yml: 错误消息: 我无法理解“单个样式表必须在sass目录中。”错误 如何在windows上以Symfony2设置指南针 版本信息: 窗口:7 Ruby:2.1.5 Sass:3.4.10 罗盘:1.0.3 编辑:kriswallsmith/assetic/src/assetic/Filter/CompassFilter.php 312线左右 $p

我总是使用Linux操作系统,但我需要检查其他人在Windows下的操作。我已经建立了一个xampp包和一个symfony2框架

config.yml:

错误消息:

我无法理解“单个样式表必须在sass目录中。”错误

如何在windows上以Symfony2设置指南针

版本信息:

  • 窗口:7
  • Ruby:2.1.5
  • Sass:3.4.10
  • 罗盘:1.0.3

编辑:kriswallsmith/assetic/src/assetic/Filter/CompassFilter.php

312线左右

$pb->add('--sass-dir')->add('')->add('--css-dir')->add('');

而yuicompressor-2.4.8.jar将更改为yuicompressor-2.4.7.jar

# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    write_to:       %kernel.root_dir%/../../html/
    #bundles:        [ ]
    java: C:\Program Files (x86)\Java\jre1.8.0_31\bin\java.exe
    ruby: C:\Ruby\bin\ruby.exe
    filters:
        cssrewrite  : ~
        sass        :
            bin: C:\Ruby\bin\sass
        compass     :
            bin: C:\Ruby\bin\compass
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
        yui_css:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"

在执行assetic:dump时,这对我很有效——尽管在开发服务器(Windows)中打开站点时,我仍然会遇到此错误——即使在清理缓存之后也是如此。我修补了CompassFilter.php以保留临时文件。这导致两个文件都正确创建,但没有编译的CSS。将整个命令粘贴到Shell创建CSS。因此,这不起作用的唯一原因一定是用户权限或环境变量的问题

仔细查看FilterCompass.php第341-345行,发现一个奇怪的补丁程序将主目录设置为Windows临时目录。我搬走了整个街区

if ($this->homeEnv) {
    // it's not really usefull but... https://github.com/chriseppstein/compass/issues/376
    $pb->setEnv('HOME', FilesystemUtils::getTemporaryDirectory());
    $this->mergeEnv($pb);
}

一切正常。

您是否尝试过搜索错误?可能重复:我必须在windows环境中安装完整的symfony开发堆栈,只需按照您的建议编辑kriswallsmith/assetic/src/assetic/Filter/CompassFilter.php即可(无需更改yuicompressor版本)。谢谢分享!这是可行的,但如果我们能在某个地方配置这些路径(编辑供应商代码很糟糕…),那就太好了
$pb->add('--sass-dir')->add($tempDir)->add('--css-dir')->add($tempDir);
# Assetic Configuration
assetic:
    debug:          "%kernel.debug%"
    use_controller: false
    write_to:       %kernel.root_dir%/../../html/
    #bundles:        [ ]
    java: C:\Program Files (x86)\Java\jre1.8.0_31\bin\java.exe
    ruby: C:\Ruby\bin\ruby.exe
    filters:
        cssrewrite  : ~
        sass        :
            bin: C:\Ruby\bin\sass
        compass     :
            bin: C:\Ruby\bin\compass
        yui_js:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
        yui_css:
            jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
if ($this->homeEnv) {
    // it's not really usefull but... https://github.com/chriseppstein/compass/issues/376
    $pb->setEnv('HOME', FilesystemUtils::getTemporaryDirectory());
    $this->mergeEnv($pb);
}