Shopware 6:使用 sw_include 时未加载 Twig 文件

Mar*_*s C 5 templates symfony twig shopware

目前我正在为 Shopwre 6 的主题而苦苦挣扎。在版本 6.2.2 中,我的主题中断并且不会加载任何包含 twig 文件。

以下代码位于我的主题的 base.html.twig 文件中。

{% block base_header %}
    <header class="header-main">
        {% block base_header_inner %}
            <div class="container">
                {% sw_include '@Themename/storefront/layout/header/header.html.twig' %}
            </div>
        {% endblock %}
    </header>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

使用此符号不会加载任何内容。将 sw_extends 替换为 extends,加载文件。

在版本 6.1.6 中它可以工作,但在当前的 6.2.2 中不行。在我的 theme.json 中,我的视图如下所示:

"views": [
     "@Storefront",
     "@Plugins",
     "@Themename"
  ],
Run Code Online (Sandbox Code Playgroud)

感谢您的帮助和建议。

马库斯

小智 4

我测试了一下,看来这是一个命名冲突。因为自定义的名称layout/header/header.html.twig与核心主题中的名称相同,所以它会同时被覆盖和包含。当我在同一目录下创建同名文件时,默认情况下它将覆盖核心文件。在示例中,它也包含在另一个自定义模板中。但是,当我将其重命名为“自定义标头”并将其包含为“自定义标头”时,它就可以工作。

当自定义主题的“header.html.twig”扩展核心“header.html.twig”时,也可以根本不包含它。因为base_header上例中的块在核心模板中看起来基本相同。layout/header/header.html.twig可以通过在自定义主题中添加 来覆盖标题。标头本身的包含已经发生在核心“base.html.twig”中