首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >细枝模板parent()导致了双重父块

细枝模板parent()导致了双重父块
EN

Stack Overflow用户
提问于 2016-02-09 00:33:42
回答 2查看 1.1K关注 0票数 1

我有一台base.html.twig template.html.twigdashboard.html.twig。仪表板扩展了模板,模板扩展了基础。

基础:

代码语言:javascript
复制
{% block javascripts %} 
    <script src="1.js"></script> 
{% endblock %}

模板:

代码语言:javascript
复制
{% block javascripts %} 
    {{ parent() }}
    <script src="2.js"></script>
{% endblock %}

仪表板:

代码语言:javascript
复制
{% block javascripts %}
    {{ parent() }}
    <script src="3.js"></script>
{% endblock %}

这种模板化设置导致了冗余的脚本标记,其中所有内容都是这样的

代码语言:javascript
复制
<script src="1.js"></script>
<script src="2.js"></script>
<script src="3.js"></script>
<script src="1.js"></script>
<script src="2.js"></script>
<script src="3.js"></script>

我是不是遗漏了什么?为什么会发生这种情况?

Edit1:

base.html.twig:

代码语言:javascript
复制
extends nothing

template.html.twig:

代码语言:javascript
复制
{% extends 'base.html.twig' %}

默认/dashboard.html.twig:

代码语言:javascript
复制
{% extends '::template.html.twig' %}
EN

回答 2

Stack Overflow用户

发布于 2016-02-09 08:07:42

在我看来,你的{% extends "file" %}很糟糕。

解决方法:

模板:

代码语言:javascript
复制
{% extends "base_path" %}
{% block javascripts %} 
    {{ parent() }}
    <script src="2.js"></script>
{% endblock %}

仪表板:

代码语言:javascript
复制
{% extends "template_path" %}
{% block javascripts %}
    {{ parent() }}
    <script src="3.js"></script>
{% endblock %}
票数 0
EN

Stack Overflow用户

发布于 2017-03-22 17:51:04

有点晚了,但由于还没有公认的答案,我会试一试。

我经历了同样的事情,这为我解决了这个问题,在我的例子中,它与基本模板和当前模板的结构有关,在我的例子中,你试图扩展基本文件的位置,在我的例子中,我从你的代码中可以看出,它处于与你的相似的情况。

基本上,本例中的结构是错误的:

基础:

代码语言:javascript
复制
{% block notAddedInTemplate %}
    {% block javascripts %} 
        <script src="1.js"></script> 
    {% endblock javascripts%}
{% endblock notAddedInTemplate %}

模板:

代码语言:javascript
复制
{% extends 'base.html.twig' %}
{% block javascripts %} 
    {{ parent() }}
    <script src="2.js"></script>
{% endblock javascripts%}

并且应该是:

基础:

代码语言:javascript
复制
{% block notAddedInTemplate %}
    {% block javascripts %} 
        <script src="1.js"></script> 
    {% endblock javascripts%}
{% endblock notAddedInTemplate %}

模板:

代码语言:javascript
复制
{% extends 'base.html.twig' %}
    {% block notAddedInTemplate %}
        {% block javascripts %} 
        {{ parent() }}
        <script src="2.js"></script>
    {% endblock notAddedInTemplate %}

我希望这能帮助你解决你的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35274568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档