Подтвердить что ты не робот

Объединение ассемблерных ресурсов через наследуемые шаблоны

Мы создаем новый сайт с использованием Symfony2, а Assetic выглядит очень перспективно для управления ресурсами, в частности для объединения и обработки всех файлов js/css вместе.

У нас есть некоторые ресурсы, которые используются на сайте в целом, и некоторые, которые относятся к конкретным страницам. Мы также будем использовать трехуровневый унаследованный подход к шаблонам.

Есть ли способ объединить два понятия, то есть автоматически добавлять дополнительные ресурсы в наследуемые шаблоны, чтобы все они были представлены как один ресурс?

4b9b3361

Ответ 1

К сожалению, вы не можете: (

Вы не можете переопределить теги атлетов, чтобы добавить больше активов. Однако вы можете сделать следующее:

{% 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%} с вашими старыми активами, а в качестве ввода он будет содержать новые местоположения активов.

Подробнее здесь.

Ответ 2

На самом деле вы можете сделать следующее:

В 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 %}

Тогда вам не нужно будет перепечатывать все старые активы, как предложил Неманья Нилкович