为什么django在extend之后生成空字符串?
我的基本模板是为什么django在extend之后生成空字符串?,django,html,django-templates,Django,Html,Django Templates,我的基本模板是 <!DOCTYPE html> <html lang="en"> <head> <title>{% block title %}My amazing site{% endblock %}</title> </head> <body> <div id="sidebar"> {% block sidebar %} <ul>
<!DOCTYPE html>
<html lang="en">
<head>
<title>{% block title %}My amazing site{% endblock %}</title>
</head>
<body>
<div id="sidebar">
{% block sidebar %}
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
{% endblock %}
</div>
<div id="content">
{% block content %}{% endblock %}
</div>
</body>
</html>
{%block title%}我的精彩网站{%endblock%}
{%块边栏%}
{%endblock%}
{%block content%}{%endblock%}
索引页:
{% extends "base.html" %}
{% block title %}My amazing blog{% endblock %}
{% block content %}
{% for entry in blog_entries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}
{%extends“base.html”%}
{%block title%}我的精彩博客{%endblock%}
{%block content%}
{blog_entries%}
{{entry.title}
{{entry.body}
{%endfor%}
{%endblock%}
这有什么不对?为什么它会在这些引用中生成奇怪的空文本?
这影响了我的布局。你有什么想法吗?谢谢
支付将您的标题标签插入正文标签的附加费用。可能从这里开始搜索?这不能是模板组合的结果,因为在“base.html”模板中,{%block title%}位于节之间,但在生成的html中,它位于节中。还有一个CSS链接,在和部分之外。我有很多这样的空字符串,这不会影响我的布局,我想问题是你的部分在外面。使用
Ctrl+U
打开的源代码看起来也很奇怪吗?可能是Chrome弄乱了Elements预览,因为我在Django 1.2.3上创建了一个视图来呈现这两个模板(并添加了两个虚拟博客条目),它正确呈现为:
<!DOCTYPE html>
<html lang="en">
<head>
<title>My amazing blog</title>
</head>
<body>
<div id="sidebar">
<ul>
<li><a href="/">Home</a></li>
<li><a href="/blog/">Blog</a></li>
</ul>
</div>
<div id="content">
<h2>Test 1</h2>
<p>blah blah</p>
<h2>Test 2</h2>
<p>blah blah</p>
</div>
</body>
</html>
我的精彩博客
测试1
胡说八道
测试2
胡说八道
终于!!!我找到了原因。我使用记事本++和编码
UTF-8
但我本应该去的
不带BOM的UTF-8
无论如何,谢谢大家。你确定template index.html扩展了right base.html吗?是的,只有两个文件,生成的html是由这两个文件组合而成的。你是对的,源代码生成正确,但Chrome正在搞砸。当我尝试用黑色(例如ex)渲染标题时,我在标题前得到了很小的边距。当我在“检查元素”选项卡中删除此空字符串时,此边距消失。