Наследование блока Twig/Assetic - невозможно добавить в начальный блок с помощью parent()

Я разрабатываю проект symfony2, который включает в себя систему тем. Из-за ограничений этой системы мне приходится определять блоки javascripts и таблиц стилей во включаемом файле, который затем включается в файл ветки макета темы. Структура выглядит следующим образом:

приложение/Ресурсы/темы/{имя_темы}/представления/макет.html.twig

... code ...
{% include '::theme_assets.html.twig; %}

приложение/Ресурсы/представления/theme_assets.html.twig

{% block stylesheets %}
    {% stylesheets 
        'stylesheet.css'
        'stylesheet2.css'
        filter='cssrewrite'
        output='css/packed/layout_theme.css'
    %}
    <link type="text/css" rel="stylesheet" href="{{ asset_url }}" />
    {% endstylesheets %}
{% endblock %}

{% block javascripts%}
    {# same as stylesheets #}
{% endblock %}

Затем я хочу иметь возможность включать дополнительные файлы css/js в начальные блоки, установленные выше на отдельных страницах, например.

src/Blah/BlahBundle/Resources/views/subpage.html.twig

{% extends 'BlahBundle::layout.html.twig' %} {# the theme system works out that there is a theme overrde for this file #}

{% block body %}
    ...body...
{% endblock %}

{% block stylesheets %}
    {{ parent() }} {# should include the initial block #}
    <link rel="stylesheet" type="text/css" href="{{ asset('/bundles/blah/css/additional1.css') }}" />
    <link rel="stylesheet" type="text/css" href="{{ asset('/bundles/blah/css/additional2.css') }}" />
{% endblock %}

По какой-то причине эти дополнительные таблицы стилей не включаются, когда я просматриваю «subpage.html.twig». Я очень подозреваю, что проблема заключается в моей реализации, но я не уверен, что я могу попробовать!


person tanGee    schedule 29.03.2013    source источник


Ответы (1)


У меня похожая проблема, но то, что я сделал и работаю, таково: я использую layout.html.twig в качестве базы для всех своих страниц. (все включает этот макет). В нем есть: {% block stylesheets %}... {% endblock %} и НЕТ {% stylesheets ... {% endstylesheets %} дополнительно. Когда я хочу добавить новую таблицу стилей для одной страницы, я снова вызываю блок таблицы стилей, как и вы, вызывая родитель, Sf2 добавляет css в конец. Но одна вещь, которую я знаю с этим решением, это то, что сброс активов не будет разрешен, как я думаю.

person tigris    schedule 29.03.2013