Django继承了导致格式错误的html的模板

时间:2011-09-25 16:20:59

标签: django django-templates django-views

我正在使用django 1.3和Python 2.6。我遇到了在浏览器中无法正确呈现的继承模板的问题。我已经使用Win32 Chrome,Firefox和IE8进行了测试。当我使用curl时,输出看起来非常好,并且它在我的文本编辑器中确实很好,但是当它被浏览器解释时,会发生这种情况(见图)。

我很确定它与文件顶部的双unicode序列有关,但是我正在试图摆脱它!可能导致这种情况的原因是什么?

malformed html

base.html文件:

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8" />
  <title>site {% block title %}test_title{% endblock%}</title>
</head>
<body>
  <div id="header">{% block header %}test_header{% endblock %}</div>
  <div id="content">{% block content %}test_content{% endblock %}</div>
  <div id="footer">{% block footer %}test_footer{% endblock %}</div>
</body>
</html>

hexdump -C base.html

00000000  ef bb bf 3c 21 44 4f 43  54 59 50 45 20 48 54 4d  |...<!DOCTYPE HTM|

http://localhost/base/

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8" />
  <title>site test_title</title>
</head>
<body>
  <div id="header">test_header</div>
  <div id="content">test_content</div>
  <div id="footer">test_footer</div>
</body>
</html>

home.html的:

{% extends "base.html" %}
{% block title %}Title{% endblock %}
{% block header %}Header{% endblock %}
{% block content %}Content{% endblock %}
{% block footer %}Footer{% endblock %}

hexdump -Chome.html

00000000  ef bb bf 7b 25 20 65 78  74 65 6e 64 73 20 22 62  |...{% extends "b|

http://localhost/home/(卷曲)

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8" />
  <title>clog Title</title>
</head>
<body>
  <div id="header">Header</div>
  <div id="content">Content</div>
  <div id="footer">Footer</div>
</body>
</html>

url.py:

urlpatterns = patterns('',
    (r'^home/','site.views.web_home'),
    (r'^base/','site.views.web_base'),
)

views.py:

def web_home(request):
    return render_to_response('home.html')
def web_base(request):
    return render_to_response('base.html')

settings.py :(仅限可能相关的设置)

LANGUAGE_CODE = 'en-us'
DEFAULT_CONTENT_TYPE = 'text/html'
DEFAULT_CHARSET='utf-8'
FILE_CHARSET='utf-8'
USE_I18N = True
USE_L10N = True
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
)

0 个答案:

没有答案
相关问题