首页 > 解决方案 > Jinja:覆盖html标签

问题描述

我有两个 jinja2 模板:base.tmplchild.tmpl

基础.tmpl

{% block head %}
    <meta property="og:image" content="url_for_DEFAULT_IMAGE.png"/>
    <meta property="og:title" content="Title"/>
{% endblock %}
{% block app_content %}
{% endblock %}

孩子.tmpl

{% extends "base.tmpl" %}
{% block head %}
    {% super() %}
    <meta property="og:image" content="url_for_CUSTOM_IMAGE.png"/>
{% endblock %}
{% block app_content %}
    <body>
        ...
        some_html_content
        ...
    </body>
{% endblock %}

如果按原样运行,我会得到以下结果:

<head>
    <meta property="og:image" content="url_for_DEFAULT_IMAGE.png"/>
    <meta property="og:title" content="Title"/>
    <meta property="og:image" content="url_for_CUSTOM_IMAGE.png"/>
</head>
<body>
    ...
    some_html_content
    ...
</body>

我的目标是覆盖<meta property="og:image">,以便我最终得到唯一的一个<meta property="og:image">标签,如下所示:

<head>
    <meta property="og:title" content="Title"/>
    <meta property="og:image" content="url_for_CUSTOM_IMAGE.png"/>
</head>
<body>
    ...
    some_html_content
    ...
</body>

标签: flaskjinja2

解决方案


推荐阅读