Łączenie zasobów Asetycznych w odziedziczonych szablonach

Budujemy nową witrynę przy użyciu Symfony2, a Assetic wygląda bardzo obiecująco w zarządzaniu zasobami, w szczególności do automatycznego łączenia i przetwarzania wszystkich plików JS/css razem.

Będziemy mieć pewne zasoby, które są używane w całej witrynie, a niektóre, które są specyficzne dla poszczególnych stron. Będziemy również stosować trzypoziomowe dziedziczone podejście do szablonów.

Czy istnieje sposób na połączenie tych dwóch pojęć, czyli automatyczne dodawanie dodatkowych zasobów w dziedziczeniu szablony tak, że są one wszystkie wyjście jako jeden zasób?

Author: nysander, 2011-08-05

2 answers

Niestety nie możesz: (

Nie można nadpisać znaczników assetic, aby dodać więcej zasobów. Można jednak wykonać następujące czynności:

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

Wtedy, gdy rozszerzysz szablon:

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

W nadpisanym bloku możesz użyć parent(), aby dołączyć blok nadrzędny, ale będziesz miał wtedy 2 Linki: nie możesz łączyć starego znacznika assetic z nowym.

Możesz jednak utworzyć makro gałązki, które wyświetli znacznik {%stylesheets%} assetic ze starymi zasobami i jako wejście zawiera nowe lokalizacje zasobów.

Więcej informacji tutaj .

 18
Author: Nemanja Miljković,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-07-30 08:24:37

Możesz wykonać następujące czynności:

W układzie.html.gałązka (czy jak tam twój layout)

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

Oraz w dowolnym szablonie rozszerzającym ten układ:

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

Wtedy nie musisz ponownie wpisywać wszystkich starych aktywów, jak zasugerował Nemanja Niljkovic

 23
Author: Populus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-26 22:07:20