python - 如何在 django 模板中设置动态 seo 标签
问题描述
我正在开发一个 djanog 项目,我想为其中的每个页面呈现动态元标记和标题。现在我正在尝试这样做我已经在 header.html 文件中添加了这样的块
{% block seo %}
{% endblock %}
主模板的层次结构(所有其他模板都从中扩展)
{% include 'header.html' %}
{% include 'menu.html' %}
{% block body %}
{% endblock %}
{% include 'footer.html' %}
现在在应用程序模板上,我正在尝试像这样呈现这些 seo 标签
{% extends 'main.html' %}
{% block seo %}
<title>example.cpm</title>
<mete name="description" content="lorem ipsum">
{% endblock %}
但是这种方法对我不起作用,请在这方面帮助我
解决方案
您应该将其定义为 header.html :
{% block seo %}
<title>example.cpm</title>
<meta name="description" content="lorem ipsum">
{% endblock %}
并且无需在应用模板上重新定义块seo。
根据文档,include 标签应该被认为是“渲染这个子模板并包含 HTML”的实现,而不是“解析这个子模板并包含它的内容,就好像它是父模板的一部分一样”。这意味着包含的模板之间没有共享状态——每个包含都是一个完全独立的渲染过程。
块在被包含之前被评估。这意味着包含来自另一个块的模板将包含已经评估和渲染的块 - 而不是可以被例如扩展模板覆盖的块。
推荐阅读
- python - 简单的 TF2 Keras 模型预测速度要慢得多,并且似乎无法在启用急切执行的情况下进行训练
- symfony - 我无法使用 Composer 安装特定版本的 Symfony
- ios - 使用同一帐户的分发证书和配置文件重新签署开发 IPA 时是否需要 entitlement.plist 文件?
- java - 在 Java 中手动编写折线图的最佳方法是什么
- react-native - 移动应用程序的启动画面部署到多个客户并且每个客户都是唯一的
- flutter - Navigator.of(context).pop() 给我黑屏
- python - 在 Windows 10 powershell 中运行 python 脚本
- javascript - 用 string.replace(regex, value) 替换变量名
- javascript - Web-share api 2 级 PDF 支持
- javascript - JavaScript 递归操作数组