3

私は、yuiコンプレッサーを使用してアセットを実行しようとしています。これが実行されている場合は、sassを使用します。現在、両方とも機能しません。config.ymlとtwigテンプレートからすべてのフィルターを削除すると、それが機能php app/console assetic:dumpし、cssファイルとjsファイルがコピーされます。

ここで、yuiコンプレッサーを追加したいのですが、config.ymlは次のようになります。

assetic:
  debug: %kernel.debug%
  use_controller: false
  filters:
    yui_js:
      jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.6.jar

テンプレートにフィルターを追加してassetic:dumpを再度実行すると、次のエラーが発生します(私によるメッセージの翻訳)。

[RuntimeException]
The syntax for filename, directory name or drive name is wrong

java.exeへのパスを指定するように指示する記事を見つけたので、これをconfig.ymlに追加します。

assetic:
  ..
  java: C:/Program Files (x86)/Java/jre6/bin/java.exe
  ..

今assetic:dumpは私に言います:

[RuntimeException]
The COMMAND "C:/Program" is either written wrong or

構成で両方の変数(/の代わりに\または\を使用、一重引用符または二重引用符を追加、短いエイリアスProgra〜1またはProgra〜2を使用)を試してみましたが、どこにも行きませんでした。両方のエラーが常に発生します。多分誰かが私を正しい方向に向けることができます。

4

3 に答える 3

6

わかりました、わかりました。男、これは残忍だった。

簡単なものから始めましょう。config.ymlの動作バージョンは次のようになります。

assetic:
  debug: false
  use_controller: false
  java: C:\Program Files (x86)\Java\jre6\bin\java.exe
  sass: C:\Program Files (x86)\Ruby192\bin\sass.bat
  filters:
    scss: ~
    yui_js:
      jar: %kernel.root_dir%\Resources\java\yuicompressor-2.4.6.jar

何らかの理由で、asseticは常にscssのディレクトリ全体をインポートしているため、他のscssファイルを正しい順序でインポートするcombine.scssを作成する必要がありました。

そして今、これを機能させるために資産コアを変更しなければならないので、それは醜くなります。Asseticの開発者はこのバグを知っており、一部の開発トランク/ブランチでは修正されていると思いますが、安定したものではないと思います。

Assetic \ Util\ProcessBuilderは95行目で変更する必要があります

if (defined('PHP_WINDOWS_VERSION_MAJOR')) {

、103行目

$script .= ' '.implode(' ', array_map('escapeshellarg', $args));

110行目

return new Process($script, $this->cwd, null, $this->stdin, $this->timeout, $options);

このバグがすぐに修正され、それまでそれを機能させようとしている人がこのスレッドを見つけてくれることを願っています... 8時間のデバッグ、読み取り、さまざまなアプローチの試行のように私を取りました。

于 2011-11-19T22:53:52.240 に答える
0

11月19日22:53のBooによる回答は、Assetic \ Util \ ProcessBuilderで彼が言及したすべてを変更することで機能しました(ファイルと同じように見えるため、95行目を無視しました)

今ではWindowsで動作します。ありがとう!

ただ確認するため。Symfony2.0.7とyuicompressor-2.4.7を使用しています

于 2011-12-21T18:46:40.617 に答える
0

Windows Server 2008 R2を使用する他のユーザーの場合:

  1. たぶん、IISユーザー/またはマシンの通常のユーザーのC:\ windows \ Tempフォルダーのプロパティを777(読み取り/書き込み)に変更する必要があります

  2. rubyinstaller.orgからruby.7zを解凍し、C:\ _ ruby​​193 \ binに移動してください。この解凍位置で、CMDプロンプトを実行する必要があります。次のように入力します。

    ruby -S gem install sass
    

    あなたがsass.batその位置に着くように

  3. Booのベストアンサーを使用するときsymfony2 dev envが来ました。おそらく、use_controllerをfalse()に変更する必要はないことに注意してください。これは、 (trueに設定された)にconfig.yml別のuse_controllerがあり、ルーターもあるためです。おそらく関連付けられています。config_dev.ymlrouting_dev.yml_assetic

于 2012-02-01T16:28:24.090 に答える