Twig / Assetic块继承 - 无法使用parent()添加到初始块

时间:2013-03-29 10:20:50

标签: symfony twig assetic

我正在开发一个包含主题系统的symfony2项目。由于此系统的限制,我不得不在包含文件中定义javascripts和样式表块,然后将其包含在主题的布局树枝文件中。结构如下:

应用程序/资源/主题/ {THEME_NAME} /views/layout.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 /布拉赫/ BlahBundle /资源/视图/ 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”时,不包括这些额外的样式表。我非常怀疑问题在于我的实施,但我不确定我能尝试什么!

1 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,但我所做的和工作是这样的: 我使用layout.html.twig作为我所有网页的基础。 (一切都包括这个布局)。它有: 另外还有{% block stylesheets %}... {% endblock %}和NO {% stylesheets ... {% endstylesheets %}。 当我想为单个页面添加新的样式表时,我再次调用样式表块,通过调用parent,Sf2将css添加到结尾。 但我知道这个解决方案的一件事是资产倾销是不允许的,因为我猜。