2013-03-28 28 views
1

C:\Ruby200-x64安装了Ruby,PATH被设置为C:\Ruby200-x64\bin就跑:配置Assetic,萨斯,Compass在Symfony的2.3.0-DEV(Windows)中

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进行prod测试我会使用bundles/bundlename/...路径。

然后,当我试图安装和卸载资产:

[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等时:

php app/console assets:install 
php app/console assetic:dump 

我同时结束与蝙蝠的路径得到这个错误

[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. 

我看到这些(和其他):

回答

3

没有蝙蝠是正确的版本,但是看起来像 “赫苏斯·s的” 文件夹名称的原因问题(应该有你的口音?)。

+0

LOL绝对是愚蠢的把符号放在我的用户名中(我认为W8在用户名的LiveID配置文件中取名)。没有时间在用户名中没有符号的本地用户测试它。我现在会尝试并报告。 **你知道如果它有可能改变临时文件夹(../AppData/Local/Temp/foo.tmp)吗?** – Jeflopo 2013-03-28 13:43:26

+0

它的工作! :D – Jeflopo 2013-03-28 14:08:28

+0

拼写正确的名字绝对不是愚蠢的。期望ASCII用户名的软件错误应该向供应商报告(我建议你停止使用该供应商的产品,因为他们显然是白痴) – 2016-03-10 12:56:48

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应用程序/控制台资产:安装” 这应该创建一个符合了你的src,网页/包内的目录/捆绑目录。

从那里你应该找到的路径,你会在我的例子是在提醒SCSS文件下这将是:捆/ mybundle/CSS/bootstrap.scss

在你看来:

{% stylesheets 
'bundles/mybundle/css/bootstrap.scss' output='css/*.css' filter="compass" %} 
<link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 

然后终于在控制台执行“php应用程序/控制台资产:转储”

这应该是你在这个特定时间点做的所有事情2/1/2014 - 我不需要修改任何ruby批处理文件

您会发现assetic会找到文件web/bundles/mybundle/css/bootstrap.css以及您可能添加的任何其他css文件,将它们合并,然后将它们保存到web/css/nameoffile_123456。css在最后附加一些数字,以确保如果有更新,浏览器将被迫下载新版本。