26

私たちは Symfony2 を使用して新しいサイトを構築しています。Assetic はリソース管理、特にすべての js/css ファイルを自動的に結合して処理するために非常に有望に見えます。

サイト全体で使用されるリソースと、特定のページに固有のリソースがあります。また、テンプレートに対して 3 層の継承アプローチを使用します。

2 つの概念を組み合わせる方法、つまり、継承されたテンプレートに追加のリソースを自動的に追加して、それらがすべて単一のリソースとして出力されるようにする方法はありますか?

4

2 に答える 2

23

実際には次のことができます。

layout.html.twig (またはレイアウトが何であれ)

{% block stylesheets %}
    {% stylesheets 'your_assets_here' %}
         <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

そして、そのレイアウトを拡張するテンプレートでは:

{% block stylesheets %}
    {{ parent() }}
    {% stylesheets 'additional_assets_here' %}
         <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

そうすれば、Nemanja Niljkovic が提案するように、すべての古いアセットを再入力する必要がなくなります。

于 2012-07-26T22:07:20.953 に答える
18

残念ながら、できません:(

アセットを追加するためにアセット タグをオーバーライドすることはできません。ただし、次のことはできます。

{% block stylesheets %}
    {% stylesheets 'your_assets_here' %}
         <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

次に、テンプレートを拡張すると:

{% block stylesheets %}
    {% stylesheets 'your_old_assets_here' 'your_new_assets_here' %}
         <link rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

オーバーライドされたブロックでは、 を使用parent()して親ブロックを含めることができますが、その場合は 2 つのリンクが作成されます。古いアセット タグを新しいタグと結合することはできません。

ただし、古いアセットで {% stylesheets %} アセット タグを出力し、入力として新しいアセットの場所を含む twig マクロを作成することもできます。

詳細はこちら

于 2011-08-05T16:23:35.713 に答える