Найти - Пользователи
Полная версия: head и body в шаблонной системе Django
Начало » Django » head и body в шаблонной системе Django
1
dnstuff
Здравствуйте!
Обратил внимание на такую вещь:
Страница home c соответствующим шаблоном:
{% extends "main.html" %}
{% load staticfiles %}
{% block mainpage %}
...
{% endblock %}

main.html:

<!DOCTYPE html>
<html lang="ru">
<head>
	<meta charset="UTF-8">
	<title>Test</title>
	{% load staticfiles %}
	<link rel="stylesheet/less" href="{% static 'css/style.less' %}"/>
	<script src="{% static 'js/jquery-1.9.0.min.js' %}" type="text/javascript"></script>
</head>
<body>
{% block mainpage %}
{% endblock %}
</body>
В итоге страница home формируется с пустым <head>, а мета и скрипты располагаются в <body>, что как бы не валидно.
Что с этим можно сделать?
Спасибо!
dnstuff
А не, при просмотре кода страницы всё нормально, а вот firebug и webinspector в хроме показывают пустой head, а meta, title, style etc. в body
inoks
в
main.html
<html>
тэг не закрыт
dnstuff
inoks
в
Это я неаккуратно скопипастил. В оригинале он закрыт.
inoks
а вот firebug и webinspector в хроме показывают пустой head, а meta, title, style etc. в body
выложите скриншот
dnstuff
inoks
я бы попробовал сохранить результат в html файл и разобраться с ним.
к django это отношения уже не имеет, тут проблема в итоговом HTML или в его отображении в firebug.
dnstuff
Феномен дополнился новыми наблюдениями.
Прикрутил шаблон:
{% extends "main.html" %}
{% load i18n %}
{% load staticfiles %}
{% block newsposts %}
<div class="row">
<div class="span12">
<div class="well">
<a href="{% url appl.views.view_post post.slug %}"><h3>{{post.title}}</h3></a>
<p>{{post.timestamp}}</p>
<p><strong>{{post.description|safe}}</strong></p>
<p>{{post.body|safe}}</p>
</div>
</div>
</div>
{% endblock %}
Обратил внимание, что шапка соответствующей страницы отображается немного не так, как на других страницах. Хотя шапка прописана в main.html и, казалось бы, ну никак не может измениться от внедрения этого шаблона. Есть и еще одна особенность - у этой страницы head и body показываются абсолютно правильно.
Практически вывихнув последний мозг, допер, что файлы остальных шаблонов у меня сохранены в UTF-8, т.к. они содержат кириллицу, и в другой кодировке django их не переваривает. А этот шаблон не содержит кириллицу в явном виде, django не заругалась, а я естественно забыл поменять кодировку. Этот шаблон сохранен в ANSI.
Теперь ситуация выглядит так: если все шаблоны сохранены в UTF-8, все работает нормально, за исключением корявого отображения head и body в furebag и webinspector. Если в ANSI, то с head и body всё ок, но страницы, содержащие кириллицу вываливаются с ошибкой кодировки.
Как можно упорядочить весь этот бардак, чтобы все было валидно?
Спасибо!

P.S. Появилось подозрение, что Notepad++ добавляет перед DOCTYPE какую-то херню, т.к. валидатор говорит <!DOCTYPE html> Line 1, Column 1: Non-space characters found without seeing a doctype first. Expected <!DOCTYPE html>.
Открыл в Блокноте, там в начале только пробел лишний, его удаление ничего не изменило. В каком редакторе можно по-человечески сохранить UTF-8, без отсебятины в заголовке?
inoks
В каком редакторе можно по-человечески сохранить UTF-8, без отсебятины в заголовке?

Sublime Text 2
Fibio
Ваш шаблон:
{% extends "main.html" %}
{% load staticfiles %} <<< Это лишние, вы уже подгрузили статику в main.html
{% block mainpage %}
...
{% endblock %}
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB