2012-03-08 9 views
2

実は、これは二つの質問です:WindowsでSymfony2のSCSSフィルタを使用するには?

  1. (小枝テンプレート内)は、Windowsでの私のsymfonyプロジェクトでSCSSフィルタを使用する正しい方法は何ですか? Windowsでscssバイナリを使用するにはどうすればいいですか?

  2. また、必ずコンパスを使用する必要がありますか?と "どのように私はそれをインストールした場合コンパスを使用するか?

拡張

私の小枝ファイルでアプリ/設定/ config.yml

assetic: 
debug:   %kernel.debug% 
use_controller: false 
filters: 
    scss: 
     bin: "%kernel.root_dir%/Resources/libs/scss" 
    compass: 
     bin: "%kernel.root_dir%/Resources/libs/compass" 

で:ここで私が行っているいくつかの設定がある

{% stylesheets 
     '@PlaylyfeBaseBundle/Resources/public/css/base.scss' 
     '@PlaylyfeBaseBundle/Resources/public/css/another.scss' 
    filter='scss' 
    output='css/compiled/total.css' 
%} 
<link rel="stylesheet" href="{{ asset_url }}" /> 
{% endstylesheets %} 
私はページをロードするとき、私は(CSSファイル内の)次のエラーを取得する

しかし、

[exception] 500 | Internal Server Error | RuntimeException 
[message] The filename, directory name, or volume label syntax is incorrect. 

[1] RuntimeException: The filename, directory name, or volume label syntax is incorrect. 
at n/a 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Filter\Sass\SassFilter.php line 162 

at Assetic\Filter\Sass\SassFilter-&gt;filterLoad(object(Assetic\Asset\FileAsset)) 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Filter\FilterCollection.php line 62 

at Assetic\Filter\FilterCollection-&gt;filterLoad(object(Assetic\Asset\FileAsset)) 
in C:\wamp\www\Symfony\vendor\assetic\src\Assetic\Asset\BaseAsset.php line 83 

at Assetic\Asset\BaseAsset-&gt;doLoad(&#039 
+0

については そこには "正しい" 答えなかっまだ...しましたレコード、私が当面していることは、私がscssファイルを編集するときに、新しいcssのものがその場で生成されるように、* watch *フラグをバックグラウンドでCSSコンバータに実行しているということです。 –

答えて

4

が、同じ問題/問題が最も可能性が高いSASS/SCSSに関連するとしてもフィルタリングします。

は、Windowsシステム上でコンパスを持つ多くの既知のファイルパスの問題があります。

  • Comments on commit 539f206Fixes a bug on Windows systems ...また、修正がそれらに対処するためにAsseticに提案:

    を私が見つけましたすべてを一緒に働かせるためには、以下を行うことが必要でした...

    #1。 %ruby%\binは、ご使用の環境PATH変数であることを確認してください:

    例: PATH = "...;C:\Ruby\1.9.2\bin"

    #2。絶対パスを使用する%ruby%\bin\compass.batを編集:

    @ECHO OFF 
    IF NOT "%~f0" == "~f0" GOTO :WinNT 
    @"C:\Ruby\1.9.2\bin\ruby.exe" "C:/Ruby/1.9.2/bin/compass" %1 %2 %3 %4 %5 %6 %7 %8 %9 
    GOTO :EOF 
    :WinNT 
    @"C:\Ruby\1.9.2\bin\ruby.exe" "%~dpn0" %* 
    

    #3。ライン〜10 @compiler.rbに手動539f206を元に戻す:

    注:このステップでは、最新のRuby /コンパスのバージョンで必要とされない場合があります。 (Reference

    パス:%ruby%\lib\ruby\gems\1.9.1\gems\compass-*\lib\compass\compiler.rb

    #  self.from, self.to = from.gsub('./', ''), to 
         self.from, self.to = File.expand_path(from), to 
    

    #4。

    例(config.yml):Asseticが正しく設定されていることを確認し

    私はWindowsと* nixシステム間のコードベースの移行を容易にするので、私のことができるように私は私のパラメータファイルで%compass.bin%を使用
    assetic: 
        debug:   %kernel.debug% 
        use_controller: false 
        filters: 
         cssrewrite: ~ 
         compass: 
          bin: %compass.bin% 
         yui_js: 
          jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 
         yui_css: 
          jar: %kernel.root_dir%/Resources/java/yuicompressor-2.4.7.jar 
    

    # Assetic 
    compass.bin: C:\Ruby\1.9.2\bin\compass.bat 
    

    #5:parameters.ymlはこのようになります。

    [assetic] 
        git=http://github.com/kriswallsmith/assetic.git 
        version=ac71449e46bed22c276da26bf54ab2f733b3801d 
    
    [AsseticBundle] 
        git=http://github.com/symfony/AsseticBundle.git 
        target=bundles/Symfony/Bundle/AsseticBundle 
        version=da4a46ce37557dcf3068b8493b12bdbbe47455e2 
    

    ことで%ruby%を置き換えてください:私はAsseticとAsseticBundleは私depsファイルにsymfonyの2.0.xのと連動しているコミット非常に最後の最後にタグ付けされてい

    :(オプション)AsseticとAsseticBundleアップグレード上のすべてのパスは実際のパスがruby.exeで、私の住所はC:\Ruby\1.9.2です。

    手順#2と#4が必要な場合もあれば、そうでない場合もありますが、この問題を抱えて戦っている間は、私が終了してセットアップが動作します(これは私が気にしていることです)。 。

    幸運を祈る!


    サイド質問:%kernel.root_dir%/Resources/libsで本当にSCSS /コンパスバイナリへのパスですか?多くのソリューションを検索し、しようとの時間の後に私の場合は

  • +0

    答え2 ur側の質問:はい、私は具体的にディレクトリを作っていた... –

    +0

    私はZendを使用しており、config.ymlを見つけることができません。 http://stackoverflow.com/questions/11054715/how-can-i-get-assetic-to-compile-scss-on-zend-framework-on-windowsの考えですか? – Ryan

    1
    1. 残念ながら小枝SCSSの拡張子は、Windows上で破っています。これは既知の問題です。私はしばらく時間をかけて仕事を考え出しましたが、利用できませんでした。私は、単にcssファイルを作成してResource/publicディレクトリに格納するために、 - watchパラメータでscss実行可能ファイルを使用することをお勧めします。また、サーバー上でscssを使用することを心配する必要がないので、いくつかの配備上の問題を単純化することもできます。

    2. scssではコンパスを使用する必要はありません。それをCSSの役に立つビットのライブラリと考えてください。たとえば、css rounded edgeを実行するようになると、Compass mixinはすべてのベンダー固有のカスタムタグを生成します。使用方法の詳細は、マニュアルを参照してください。

    3. 私が使用するものですので、私は唯一のコンパスのために話すことができる
    +0

    aah .... ok ...それはそれをはるかに明確にします。 ありがとうたくさん –

    -1

    、これは私の仕事:

    'をアプリ/設定/ config.yml' が追加:

    parameters: 
    # Assetic 
    assetic.filter.compass.bin: D:/Ruby193/bin/compass 
    

    D:/ Ruby193/binに/ compassはあなたのRubyのパスに依存します。

    参照のスクリーンショット: http://s23.postimg.org/3n2oc5wh7/MY_SOLUTION_THAT_I_FOUND.jpg

    私のシステム: Windows 7の究極、 ルビー1.9.3、 symfonyの2.4.3

    関連する問題