symfony2.3带指南针

时间:2013-06-08 16:24:12

标签: rubygems compass-sass assetic symfony-2.3

抱歉我的英语不好,我在windows8上使用symfony2.3。当我尝试使用指南针过滤器时,我得到错误输出:     “您必须从项目目录中编译单个样式表。”

这是我的资产配置:

assetic:
    debug:          %kernel.debug%
    use_controller: false
    bundles:        [ ]
    ruby: "C:/Ruby200-x64/bin/ruby.exe"
    #java: /usr/bin/java
    filters:
       cssrewrite: ~
       sass:
           bin: "C:/Ruby200-x64/bin/sass"
       compass:
           bin: "C:/Ruby200-x64/bin/compass"

以下是观点:

{% stylesheets 'bundles/walcore/css/*' filter='compass' %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

当我尝试使用SASS过滤器时,一切都很完美。

有人可以帮我吗?!

2 个答案:

答案 0 :(得分:2)

我在尝试将SF2.2项目迁移到SF2.3时遇到了这个问题,下面是资产的CompassFilter在2.2和2.3版本的Assetic软件包中执行的命令行的比较

SF 2.2.2 AsseticBundle 2.1.3

  

“C:\ Ruby200 \ bin \ ruby​​.exe”“C:\ Ruby200 \ bin \ compass”“compile”“C:\ Users \ Rick \ AppData \ Local \ Temp”“ - boring”“ - images-dir“”D:/ Projects / cw3sf2 / app /../ web / bundles / cwmain / images /“” - config“”C:\ Users \ Rick \ AppData \ Local \ Temp \ ass8DCC.tmp“” --sass-dir“”“” - css-dir“”“”C:/Users/Rick/AppData/Local/Temp/ass8DCD.tmp.scss“

SF 2.3 AsseticBundle 2.3.0

  

“C:\ Ruby200 \ bin \ ruby​​.exe”“C:\ Ruby200 \ bin \ compass”“compile”“C:\ Users \ Rick \ AppData \ Local \ Temp”“ - boring”“ - images-dir“”D:/ Projects / cw3sf2 / app /../ web / bundles / cwmain / images /“” - config“”C:\ Users \ Rick \ AppData \ Local \ Temp \ assD29B.tmp“” --sass-dir“” - css-dir“”C:/Users/Rick/AppData/Local/Temp/assD29C.tmp.scss“

正如您将注意到,之前的ProcessBuilder通过使用“”为--sass-dir和--css-dir注入了空参数,而较新的ProcessBuilder则没有。 显然这会导致Compass向您发出错误消息。

修复此问题需要在ProcessBuilder中进行上游修复,或者要求AsseticBundle在CompassFilter.php第316行上手动将--css-dir和--sass-dir设置为$ tempdir

  

$ PB-&gt;添加( ' - SASS-DIR') - &gt;添加( '') - &gt;添加( ' - CSS-DIR') - &gt;添加( '');

  

$ PB-&gt;添加( ' - SASS-DIR') - &gt;添加($的tempDir) - &gt;添加( ' - CSS-DIR') - &gt;添加($的tempDir);

发生错误是因为在Symfony 2.3分支中更改了ProcessBuilder,它以不同的方式转义shell参数,忽略空参数。因此导致生成的命令中缺少所需的“”。我已经向CompassFilter的创建者提出了这个问题,尽管它可能需要上游修复。

答案 1 :(得分:0)

我遇到了同样的问题。为了解决这个问题,我使用了“kriswallsmith / assetic”:“v1.1.1而不是”kriswallsmith / assetic“:”1.1.*@dev“。那对我来说没关系

相关问题