Я использую django 1.3 и Python 2.6.У меня проблема с унаследованными шаблонами, которые неправильно отображаются в браузере.Я тестировал с Win32 Chrome, Firefox и IE8.Вывод выглядит отлично, когда я использую curl, и, конечно, он хорошо сформирован в моем текстовом редакторе, но когда он интерпретируется браузером, это происходит (см. Изображение).
Я почти уверен, что он имеетчтобы сделать с двойной последовательностью Unicode в верхней части файла, но я вырываю свои волосы, пытаясь избавиться от этого!Что может быть причиной этого?
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 -C home.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',
)