Простое добавление JS и CSS из включенных шаблонов Twig

Я ищу, чтобы узнать, есть ли чистый способ добавления JS и CSS из включенных шаблонов.

Так, например, если layout.html.twig имеет:

{% include 'GenericBundle:Generic:page.html.twig' with {'data': data} %}
...
{% block javascript %}

    {% javascripts
        '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
        '@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
    %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}

{% endblock %}

И на общей странице связки я хотел бы добавить еще несколько Javascript, но добавьте ее в установленный блок Javascript, чтобы придерживаться лучших методов HTML и JS.

Есть ли чистый способ сделать это? Я использую Symfony2 и, вероятно, могу объединить решение с помощью Singletons и т.д., Но я бы предпочел бы более чистый метод, если бы он был доступен.

Ответ 1

Я знаю, что немного опоздал на вечеринку, но с Twig 1.2 вы можете использовать тег use, а < Функция href= "http://twig.sensiolabs.org/doc/functions/block.html" rel= "noreferrer" > block:

GenericBundle: Generic: page.html.twig

{% block javascripts %}
    <script src="..."></script>
{% endblock %}
{% block included_content %}
   Bar
{% endblock %}

layout.html.twig

{% use 'GenericBundle:Generic:page.html.twig' with javascripts as page_javascripts %}

{% block javascript %}

    {% javascripts
        '@GenericBundle/Resources/public/js/app/jquery/jquery.min.js'
        '@GenericBundle/Resources/public/js/lib/bootstrap/bootstrap.min.js'
    %}
        <script src="{{ asset_url }}"></script>
    {% endjavascripts %}
    {{ block('page_javascript') }} // Don't forget the 'braces'

{% endblock %}

...
{{ block('included_content') }} // Don't forget the 'braces'