Jinja2 将布局的头部 + 不需要的中断放在 child 的 body 中

Jinja2 puts layout's head + unwanted break in child's body

我最近开始使用 flask/python,但 Jinja2 似乎有一个我无法自行解决的问题。我有一个这样的 layout.html 模板:

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Some Title</title>
<meta id="viewport" name="viewport" content ="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel='stylesheet' media='screen and (max-width: 800px)' href="{{ url_for('static', filename='styles/style_mobile.css') }}" />
<link rel='stylesheet' media='screen and (min-width: 800px) and (max-width: 1200px)' href="{{ url_for('static', filename='styles/style_middle.css') }}" />
<link rel='stylesheet' media='screen and (min-width: 1200px)' href="{{ url_for('static', filename='styles/style_desktop.css') }}" />
</head>

<body>
  <div>Some header</div>
  {% block content %}{% endblock %}
  <div>Some footer</div>
</body>
</html>

还有一些 child 模板扩展布局如下:

{% extends "layout.html" %}
{% block content %}
<div class="content-wrapper">
Here be content.
</div>
{% endblock %}

当我在浏览器中访问我的 child 页面之一时,我希望看到布局模板的完整副本,包括相同的头部,仅添加了 child 的内容在正确的地方。相反,我得到了:

<head>
some chrome extensions
</head>
<body>
"&#65279;


"
<meta charset="utf-8">
<title>Some Title</title>
<meta id="viewport" name="viewport" content ="width=device-width, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<link rel='stylesheet' media='screen and (max-width: 800px)' href="{{ url_for('static', filename='styles/style_mobile.css') }}" />
<link rel='stylesheet' media='screen and (min-width: 800px) and (max-width: 1200px)' href="{{ url_for('static', filename='styles/style_middle.css') }}" />
<link rel='stylesheet' media='screen and (min-width: 1200px)' href="{{ url_for('static', filename='styles/style_desktop.css') }}" />
<div>Some header</div>
<div class="content-wrapper">
Here be content.
</div>
<div>Some footer</div>

所以布局模板扩展了 child 的内容,但是头部的内容在 body 并且页面顶部有一个不需要的中断,向下推布局。当我在 Chrome 浏览器中单击源代码时(而不是元素),它会显示在布局模板中扩展的 child 模板的代码,就像它应该的那样......我可以'我似乎对此没有头绪。我该如何解决这个问题?提前谢谢你。

我解决了这个问题。它与BOM(字节顺序标记)有关。 在禁用 'add BOM tag to file' 的文本编辑器中保存我的文件摆脱了 在页面的开头。 head 标签的内容现在也保持不变。