Question

I Installed Ruby in C:\Ruby200-x64, PATH was set to C:\Ruby200-x64\bin and ran:

gem update --system
gem install sass
gem install compass

Then I configured Assetic in app/config/config.yml:

ruby:           C:\Ruby200-x64\bin\ruby.exe
sass:           C:\Ruby200-x64\bin\sass.bat
filters:
    compass:
        bin: C:\Ruby200-x64\bin\compass.bat

In app/Resources/views/base.html.twig I've added the stylesheets block:

{% stylesheets
    'css/main.scss' filter="compass" %}
    <link rel="stylesheet" href="{{ asset_url }}" />
{% endstylesheets %}

The scss file points to /web/css/main.scss for testing in prod I would use the bundles/bundlename/... paths.

Then, when I tried to install and dump Assets:

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

I got this error while ending paths with .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

And this when not using .bat extensions:

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

I saw these (and others):

Was it helpful?

Solution

The version without .bat is correct, however looks like "Jes·s" folder name causes the issue (there should be u with an accent?).

OTHER TIPS

Your config.yml should look something like this

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'

Make sure you modify the paths to match with your file system. Note that some have a .exe or .bat at the end some do not

Next in console execute "php app/console assets:install" This should create directories within web/bundles that match up with your src/bundles directories.

From in there you should find the path to the scss file you will be calling in my example below it would be: bundles/mybundle/css/bootstrap.scss

In your view:

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

And then finally in console execute "php app/console assetic:dump"

This should be all that you have to do at this particular point in time 2/1/2014 - I did not need to modify any of the batch files for ruby

You will find that assetic will find the file web/bundles/mybundle/css/bootstrap.css and any other css file you may add, combine them and then save them to web/css/nameoffile_123456.css with some number appended to the end to make sure that if there is an update the browser is forced to download the new version.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top