为什么Django模板head标签内代码不生效但body内代码可正常运行?
Django模板head标签渲染为空问题排查
根因定位
你提供的模板代码中else对应的模板标签存在语法错误:
{% else % }
上述代码里%和}之间多了一个多余的空格,不符合Django模板标签的语法规则。Django模板引擎要求标签必须严格以{%开头、%}闭合,两者之间不能有额外的分隔空格。这个语法错误会导致整个<head>标签内的if逻辑块解析失败,最终渲染时head标签内容为空,而body内的for循环语法符合规范,因此可以正常执行。
修复方法
将错误的{% else % }修改为符合语法要求的{% else %}即可,修复后的完整head部分代码如下:
<head> {% if title %} <title> Django blog - {{title}} </title> {% else %} <title> Django blog </title> {% endif %} </head>
修改后刷新页面即可正常渲染title标签内容。
内容的提问来源于stack exchange,提问作者Anupam Khatiwada
相关产品推荐
相关产品推荐

