我在C:\Ruby200-x64
中安装了Ruby,PATH设置为C:\Ruby200-x64\bin
并运行:
gem update --system
gem install sass
gem install compass
然后我在app/config/config.yml
中配置了Assetic:
ruby: C:\Ruby200-x64\bin\ruby.exe
sass: C:\Ruby200-x64\bin\sass.bat
filters:
compass:
bin: C:\Ruby200-x64\bin\compass.bat
在app/Resources/views/base.html.twig
中,我添加了样式表块:
{% stylesheets
'css/main.scss' filter="compass" %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
scss文件指向/web/css/main.scss
进行测试,我将使用bundles/bundlename/...
路径。
然后,当我尝试安装和转储资产时:
php app/console assets:install
php app/console assetic:dump
在使用.bat:
结束路径时出现此错误 [Assetic\Exception\FilterException]
An error occurred while running:
"C:\Ruby200-x64\bin\ruby.EXE" "C:\Ruby200-x64\bin\compass.bat" "compile" "C:\Users\Jes·s\AppData\Local\Temp" "--config" "C:\Users\Jes·s\AppData\Local\Temp\assC7D6.tmp" "--sass-dir" "" "--css-dir" "" "C:/Users/Jes·s/AppData/Local/Temp/assC7D7.tmp.scss"
Error Output:
C:/Ruby200-x64/bin/compass.bat:1: syntax error, unexpected tCONSTANT, expecting end-of-input
这不使用.bat扩展名:
[Assetic\Exception\FilterException]
An error occurred while running:
"C:\Ruby200-x64\bin\ruby.exe" "C:\Ruby200-x64\bin\compass" "compile" "C:\Users\Jes·s\AppData\Local\Temp" "--config" "C:\Users\Jes·s\AppData\Local\Temp\ass52DB.tmp" "--sass-dir" "" "--css-dir" "" "C:/Users/Jes·s/AppData/Local/Temp/ass52DC.tmp.scss"
Error Output:
Configuration file, C:\Users\Jes·s\AppData\Local\Temp\ass52DB.tmp, not found or not readable.
我看到了这些(和其他人):
答案 0 :(得分:3)
没有.bat的版本是正确的,但看起来像“Jes·s”文件夹名称导致问题(应该有你的重音?)。
答案 1 :(得分:2)
你的config.yml看起来应该是这样的
assetic:
debug: "%kernel.debug%"
use_controller: false
bundles: [ AJWPageBundle ]
# compass.bin: W:\Ruby\1.9.2\bin\compass.bat
java: /usr/bin/java
ruby: 'W:\Ruby\bin\ruby.exe'
sass: 'W:\Ruby\bin\sass.bat'
filters:
cssrewrite: ~
sass:
bin: %sass.bin%
apply_to: "\.scss$"
compass:
bin: %compass.bin%
closure:
jar: "%kernel.root_dir%/Resources/java/compiler.jar"
yui_css:
jar: "%kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar"
parameters:
assetic.ruby.bin: 'W:\Ruby\bin\ruby'
compass.bin: 'W:\Ruby\bin\compass'
sass.bin: 'W:\Ruby\bin\sass'
确保修改路径以匹配文件系统。 请注意,有些人的末尾有.exe或.bat,有些不是
接下来在控制台执行“php app / console assets:install” 这应该在web / bundles中创建与src / bundles目录匹配的目录。
从那里你应该找到你将在下面的例子中调用的scss文件的路径:bundles / mybundle / css / bootstrap.scss
在您看来:
{% stylesheets
'bundles/mybundle/css/bootstrap.scss' output='css/*.css' filter="compass" %}
<link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}
最后在控制台执行“php app / console assetic:dump”
这应该是您在2014年2月1日这个特定时间点所要做的所有事情 - 我不需要为ruby修改任何批处理文件
您会发现资产将找到文件web / bundles / mybundle / css / bootstrap.css以及您可能添加的任何其他css文件,将它们组合,然后将它们保存到web / css / nameoffile_123456.css并附加一些数字最后确保如果有更新,浏览器将被迫下载新版本。