【问题标题】:Symfony2 : using assets in sub-layout templatesSymfony2:在子布局模板中使用资产
【发布时间】:2012-06-12 08:08:51
【问题描述】:

我正在开发一个 Symfony2 应用程序,我正在尝试将资源(此处为 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() }}(作为“清洁度”的问题),它可以工作。

【问题讨论】:

    标签: php symfony twig


    【解决方案1】:

    {% extends ... %} 必须在前。

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

    【讨论】:

    • 其实我都试过了,但是因为我刚刚编辑,正在搜索资源,但实际上并没有加载到页面中。
    • 那你在其他地方有问题。我的观点是可以做你想做的。
    • 疑难解答:如果{% blocks %} 未在顶级布局中定义,则它们不会导入从它们继承的布局中。一旦定义了这些块,使用{{ parent() }} 方法就可以很好地工作。谢谢!顺便说一句,我已经为 Symfony2 建立了一个聊天室,如果你也使用它的话......好吧,只是说:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多