如何在子模板中使用树枝管理 yii2 中的资产?

How to Manage Assets in yii2 using twig in child template?

我想用一些资产包扩展我的基本树枝模板,并在子模板中添加新资产。

{# main.twig #}
register_asset_bundle('app/assets/AppAsset')

{# child.twig #}
{% extends 'layouts/main.twig' %}
register_asset_bundle('app/assets/NewAsset')

所以我收到错误消息“扩展另一个模板的模板不能包含 Twig 块之外的内容。您是否忘记将内容放在 {% block %} 标签中?” 那么我需要将每个资产设置为区块吗?当我使用资产包时,这很不舒服。 Google没有解决办法,遇到这种情况怎么办?

child 模板要求其内容严格包含在 block 标签中。引擎用 parent 块替换 child.

中定义的块

因此,您的 main.twig 模板应至少包含一个 block,例如:

register_asset_bundle('app/assets/AppAsset')
{% block content %}{% endblock %}

以便 child 可以按如下方式覆盖它:

{% extends 'layouts/main.twig' %}
{% block content %}
    register_asset_bundle('app/assets/NewAsset')
    {# More content here #}
{% endblock %}

无论您在 parent 模板的“内容”块中放入什么,都将替换为 child 中定义的该块的内容。