2

Ruby を にインストールしC:\Ruby200-x64、PATH を に設定しC:\Ruby200-x64\binて実行しました:

gem update --system
gem install sass
gem install compass

次に、Assetic を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

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.

私はこれら(およびその他)を見ました:

4

2 に答える 2

3

.bat のないバージョンは正しいですが、"Jes·s" フォルダ名が問題を引き起こしているようです (アクセント付きの u があるはずですか?)。

于 2013-03-28T11:24:08.377 に答える
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」を実行します。これにより、src/bundles ディレクトリと一致する web/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 のバッチ ファイルを変更する必要はありませんでした。

assetic がファイル web/bundles/mybundle/css/bootstrap.css および追加する可能性のあるその他の css ファイルを見つけて結合し、最後にいくつかの番号を追加して web/css/nameoffile_123456.css に保存することがわかります。更新がある場合、ブラウザが強制的に新しいバージョンをダウンロードするようにします。

于 2014-02-02T02:01:52.313 に答える