多くの便利な機能があるので、symfony 2 プロジェクトで assetic を使用したいと思っていますが、次の要件を実装する最善の方法がわかりません。
すべてのページに含めることができる js ファイルがいくつかあります。ただし、それらの一部は、特定の JavaScript ファイルを必要とする特定のテンプレートを含める (または特定のコントローラーを埋め込む) ページ テンプレートのサブセットにのみ関連しています。
現在、次のオプションがあります。
ここで説明されているように、レイアウトと特定のページ テンプレート (ここでは、javascript を使用してテンプレートを含めます。 :継承されたテンプレート全体で資産リソースを組み合わせる。
{# ... specific.html.twig #} {% extends 'MyBundle::layout.html.twig' %} ... {% include 'MyBundle:Foo:templateWithComplexJs.html.twig' %} ... {% block javascripts %} {{ parent() }} {% javascripts '@MyBundle/Resources/public/js/specific/complex.js' %} <script src="{{ asset_url }}"></script> {% endjavascripts %} {% endblock %}
私が見る短所:
a) 含まれているテンプレートを適応させるとき (例えば、新しい js lib への更新)、それらが含まれているすべてのページ テンプレートを適応させる必要があります。エラーが発生しやすい複雑なシステム。
b) javascript を 2 回 (レイアウトの JavaScript に 1 回、テンプレートの JavaScript に 1 回) 含めることがありますが、これらは別々に扱われるため、assetic にはわかりません。必要なすべての js ファイルをレイアウトに含めます。その後、含まれているテンプレートを調整するときに1 つの場所を変更するだけで済み、JavaScript を 2 回含めることはほとんどありません。
私が見る欠点:
js ファイルはかなりのサイズになる可能性があるため、本当に必要な場合にのみ含めることをお勧めします。
この関連する質問 ( Twig Assetic Stylesheets Among Some Templates ) では、現在、asset を使用して満足のいく解決策を達成することは不可能であると書かれていますが、これらの要件を持ち、とにかく assetic を使用したいのは私だけではないと思います。
では、そのようなシナリオのベスト プラクティスは何ですか?