Django模板扩展标签在顶部添加了额外的空间

托尼·托尼

我正在使用带有内置extends标签的Django模板,我没有在其中添加太多代码,只是在导航栏上添加了代码,但是我在浏览器顶部获得了额外的空间,而这在chrome开发人员工具中无法实现。即使我这样做,该额外空间仍然存在:

# base.html

<!doctype html>
<html>
<head>
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static "css/layout.css" %}" />
</head><body>
    <div><p>something here.</p>
    </div>    
</body>
</html>

然后我只用一行代码扩展它:

# home.html

{% extends "base.html" %}

然后渲染的文件仍然有这个问题。我正在将 Django3.3和 Python 3.3与Django1.6配合使用。

真的很奇怪

托尼·托尼

最后我发现问题是由于编码中的UTF-8 BOM。

我在Windows7上使用Django1.6,Python3.3。我的文本编辑器是Notepad ++,我以前使用UTF-8编码保存文件。默认情况下,UTF-8使用字节顺序标记(BOM)保存。正是这种影响的模板渲染,至少的标签extendsinclude假设,我举一个例子:

# home.html
{% extends "base.html" %}

{% block content%}
    {% include "a.html" %}
    {% include "b.html" %}
{% endblock %}

# base.html
<!doctype html>
<html>
<head>
<!-- This file saved with encoding UTF-8, which is by default with BOM.-->
</head>
<body>
    <div><p>something here, base.</p></div>
    {% block content%}{% endblock %}    
</body>
</html>

# a.html
<p>a.html, saved in utf-8 without BOM. </p> 

# b.html
<p>b.html, saved in utf-8, which is by default with BOM in Notepad++.</p> 

输出是什么?看起来像这样

___________ ( top of your browser )
            ( extra space on top, due to extended file `base.html` is with BOM )
something here, base.
a.html, saved in utf-8 without BOM. (no extra space above the content of a.html)
            ( extra space on top, due to included file `b.html` is with BOM )
b.html, saved in utf-8, which is by default with BOM in Notepad++.

因此,基本上,对于模板加载的任何文件,如果带有BOM表,则呈现的html都会在其部分的顶部添加额外的空格。因此,请记住使用UTF-8保存所有没有BOM的文件。

注:我曾尝试更早使用{%spaceless%} {%endspaceless%}我base.html还是home.html,但是这不能解决问题,多余的空格不是由于空格或\ n HTML标记之间。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在 gulp 构建的格式化标签之间添加了 Pug (Jade) 额外空间

来自分类Dev

Bottomsheetbehavior在底页顶部增加了额外的空间

来自分类Dev

Wordpress简码中的链接在末尾添加了额外的空间

来自分类Dev

浏览器在缩进的HTML中添加了额外的空间

来自分类Dev

不需要时添加了额外的垂直空间

来自分类Dev

从span和li标签添加额外的空间

来自分类Dev

从标签顶部弹出额外的空白空间到原始位置

来自分类Dev

jQuery在解析html时添加了额外的标签

来自分类Dev

浏览器添加了额外的结束标签

来自分类Dev

使用Form标签在Django模板中获取模型名称

来自分类Dev

Jinja2模板在空标签上创建额外的空间

来自分类Dev

Django JSONField添加了额外的字符u,为什么?

来自分类Dev

为什么要让扩展添加额外空间的SQL代码?

来自分类Dev

<div>顶部的未知额外空间

来自分类Dev

<div>顶部的未知额外空间

来自分类Dev

iOS 图表额外空间并添加 x 轴标签

来自分类Dev

代码添加了额外的字符

来自分类Dev

btCompoundShape添加了额外的形状

来自分类Dev

Blockquote 添加了额外的 <br>

来自分类Dev

在Chrome中最后对齐的内联块元素中添加了额外的空间

来自分类Dev

JavaScript字符串串联在末尾添加了额外的空间

来自分类Dev

下划线模板,添加额外的<h2>标签

来自分类Dev

自定义帖子类型添加了额外的html标签

来自分类Dev

AngularJS-在select标签中使用显式ng-repeat添加了额外的空白选项

来自分类Dev

Python Tkinter标签为字符串添加了额外的数字

来自分类Dev

如何正确地使用{%include%}标签在django中渲染模板(如局部视图)?

来自分类Dev

哪个扩展添加了jQuery?

来自分类Dev

UINavigationController NavigationBar在视图顶部有额外的空间

来自分类Dev

具有主键的Django Models关系为该列添加了额外的“ _id”

Related 相关文章

  1. 1

    在 gulp 构建的格式化标签之间添加了 Pug (Jade) 额外空间

  2. 2

    Bottomsheetbehavior在底页顶部增加了额外的空间

  3. 3

    Wordpress简码中的链接在末尾添加了额外的空间

  4. 4

    浏览器在缩进的HTML中添加了额外的空间

  5. 5

    不需要时添加了额外的垂直空间

  6. 6

    从span和li标签添加额外的空间

  7. 7

    从标签顶部弹出额外的空白空间到原始位置

  8. 8

    jQuery在解析html时添加了额外的标签

  9. 9

    浏览器添加了额外的结束标签

  10. 10

    使用Form标签在Django模板中获取模型名称

  11. 11

    Jinja2模板在空标签上创建额外的空间

  12. 12

    Django JSONField添加了额外的字符u,为什么?

  13. 13

    为什么要让扩展添加额外空间的SQL代码?

  14. 14

    <div>顶部的未知额外空间

  15. 15

    <div>顶部的未知额外空间

  16. 16

    iOS 图表额外空间并添加 x 轴标签

  17. 17

    代码添加了额外的字符

  18. 18

    btCompoundShape添加了额外的形状

  19. 19

    Blockquote 添加了额外的 <br>

  20. 20

    在Chrome中最后对齐的内联块元素中添加了额外的空间

  21. 21

    JavaScript字符串串联在末尾添加了额外的空间

  22. 22

    下划线模板,添加额外的<h2>标签

  23. 23

    自定义帖子类型添加了额外的html标签

  24. 24

    AngularJS-在select标签中使用显式ng-repeat添加了额外的空白选项

  25. 25

    Python Tkinter标签为字符串添加了额外的数字

  26. 26

    如何正确地使用{%include%}标签在django中渲染模板(如局部视图)?

  27. 27

    哪个扩展添加了jQuery?

  28. 28

    UINavigationController NavigationBar在视图顶部有额外的空间

  29. 29

    具有主键的Django Models关系为该列添加了额外的“ _id”

热门标签

归档