Łą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?
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 .
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
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