5

Symfony2プロジェクトでAsseticを使おうとしています。config.ymlに次の設定があります:

# app/config/config.yml
assetic:
    debug:          %kernel.debug%
    use_controller: true
    filters:
        cssrewrite: ~
        yui_css:
            jar: /home/testing/bin/yuicompressor-2.4.7.jar
        less:
            node: /usr/bin/node
            node_paths: [/usr/local/bin/]
            apply_to: "\.less$"
    assets:
        all_js:
            inputs:
                - @FoundationViewBundle/Resources/public/js/*
            filters: [?yui_js]
        all_css:
            inputs:
                - @FoundationViewBundle/Resources/public/css/*
            filters: [less, ?yui_css]

(不思議に思うかもしれませんが、これらの設定はconfig_dev.ymlファイルでオーバーライドされていません。)

これらのコレクションはAsseticによって取得され、ルートが作成されます。ファイルごとに、番号とファイル拡張子のないファイル名の個別のルートがあります。たとえば、「base.css」ファイルの場合、ファイルをダウンロードするルート(フィルターが適用されている)は「/assetic/all_css_part_1_base_1」です。

次に、次のようにアセットコレクションをTwigテンプレートに含めます。

{% stylesheets '@all_css' %}
    <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}">
{% endstylesheets %}

(「all_js」コレクションについても同様ですが、css側を使用して問題を示します。)

Twigがテンプレートをレンダリングするとき、個々のファイル用に作成されたルートを使用せず、代わりに「all_css」コレクションの「asset_url」を「/css/9118a5a_part_1.css」として表示します。

私は開発フロントコントローラーを使用しており、Asseticがデバッグモードであると信じていることをテストしました。(本番専用フィルターは適用されません。)ただし、ドキュメントで別の方法が提案されているにもかかわらず、ファイルはまだ連結されています。

特にJavaScriptエラーの場合、行番号が一致しないため、これらのファイルの問題を追跡することは非常に困難です。Twigがファイルを個別に表示するために、他に何かする必要がありますか?

4

2 に答える 2

1

ouput次のように小枝ブロックでパラメーターを指定する必要があります。

{% javascripts '@all_js' output="assetic/js/all.min.js" debug=false %}
   <script type="text/javascript" charset="utf-8" src="{{ asset_url }}">
{% endjavascripts %}

{% stylesheets '@all_css' output="assetic/css/all.min.css" debug=false  %}
   <link rel="stylesheet" type="text/css" media="screen" href="{{ asset_url }}">
{% endstylesheets %}

config.ymloutputで指定されたパラメーターに依存するのが最善ですが、残念ながら機能しません。アセットをダンプするときに正しいファイルを出力するように機能しますが、小枝にアセットを自動的に挿入することはできません。前の例のように指定する必要があります。

ここでの debug 引数はオプションです。これは、特定のコレクションに対してデバッグ モードを強制し、異なるファイルを出力するためのものです。このパラメーターはconfig.ymlで設定することもできます。

assets:
    all_js:
        inputs:
            - @FoundationViewBundle/Resources/public/js/*
        filters: [?yui_js]
        output: "assetic/css/all.min.js"
        debug: true
于 2013-09-03T22:10:37.443 に答える
0

ここに記載されているように、テンプレートに個別のアセットをリストするだけで、個別のファイルが生成されます。本番では、1 つのファイルに結合されます。

于 2012-06-29T14:00:20.803 に答える