Symfony2:在子布局模板中使用资源

时间:2012-06-12 08:08:51

标签: php symfony twig

我正在研究Symfony2应用程序,我正在尝试在特定的twig模板中导入资源(这里是css和js),而不是在布局模板中。但是,当我使用extends属性时,我尝试过的东西似乎不起作用。然而,当没有布局继承时,它确实

这是我使用的代码:

{% block stylesheets %}
    {% stylesheets 'bundles/mybundlename/css/style.css'
                    filter='cssrewrite' %}
        <link rel="stylesheet" href="{{ asset_url }}" type="text/css" />
    {% endstylesheets %} 
{% endblock %}

{% block javascripts %}
    {% javascripts 'bundles/mybundlename/js/jquery-1.7.2.min.js'
                'bundles/mybundlename/js/jquery-ui-1.8.20.custom.min.js'
                        %}
        <script src='{{ asset_url }}' type='text/javascript'></script>
    {% endjavascripts %}
{% endblock %}

{% extends "MyBundle::layout.html.twig" %}

... the rest of my template ...

总结一下,我如何在继承模板中导入这些资源? 或者只是在一般布局中导入它们更好(但随后它会为每个页面加载:/)?

编辑:我也使用了@MyBundle路由类型,它们被引擎搜索(如果路径错误,我收到错误),但资源没有添加到html部分。

第二次编辑:它无法正常工作的原因可能是我没有在我的顶级布局中声明{{% blocks %}}。我在子布局和页面中使用了{{parent()}}(作为“清洁度”的问题)并且它可以工作。

1 个答案:

答案 0 :(得分:1)

{% extends ... %}必须先出现。

您可能还希望使用parent函数附加到布局中定义的样式表和javascripts而不是覆盖它们。