【问题标题】:Django: How to Add Meta Tags to Multiple Pages?Django:如何向多个页面添加元标记?
【发布时间】:2021-10-04 11:50:59
【问题描述】:

这是一个类似问题的链接:Django: How can I add meta tags for social media?

这个问题只解决了如何在只有子类的情况下添加元标记,现在如果有多个包含的子类

{% block extra_head_tags %}
<meta .../>
{% endblock %}

我将如何实现?

这是一个示例结构:

 - Base UI.html (contains {% block extra_head_tags %}{% endblock %} )
 
    - Child1.html(contains 
    {% block extra_head_tags %}
       <meta CONTENT1/>
    {% endblock %}
    
    - Child2.html (contains 
    {% block extra_head_tags %}
       <meta CONTENT2/>
    {% endblock %}

【问题讨论】:

    标签: python html css django seo


    【解决方案1】:

    正如documentation on template inheritance 所说:

    如果您需要从父模板中获取块内容{{ block.super }} 变量可以解决问题。

    因此您可以将Child1.html 实现为:

    {% block extra_head_tags %}
        {{ block.super }}
           <meta CONTENT1/>
    {% endblock %}

    如果您因此在“父模板”中添加元信息,这些信息也会显示在“子模板”的渲染中。

    【讨论】:

    • 对不起,我想你误解了我的问题。我要问的是,父母是否会有一个名为 extra_block_tags 的空块,一次会被一个孩子覆盖。如果有多个children,如何实现才不会出错?
    • @AngelaRubchinksy:但这没有任何意义,您重新定义块的每个模板都会从其父级(或祖先,如果有多个)覆盖该块。因此它将只渲染 那个 模板(及其祖先),而不查看其他模板。如果要在所有页面上设置标签,则需要将标签添加到模型中,然后枚举该模型以指定所有标签。
    猜你喜欢
    • 1970-01-01
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2011-09-06
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    相关资源
    最近更新 更多