这是我的资产配置:
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过滤器时,一切都很完美。
有人可以帮我吗?!答案 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)