Ладно, это полностью ошеломляет меня.
У меня есть очень простой _base.html, код которого выглядит следующим образом:
<!DOCTYPE html />
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
{% load static %}
<title>Welcome!</title>
<!-- Includes jQuery UI -->
<script type='application/javascript' src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js'></script>
<script type='application/javascript' src='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/jquery-ui.min.js'></script>
<link rel='stylesheet' href='https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.13/themes/cupertino/jquery-ui.css' type='text/css' media='screen' />
<!-- Includes Columnal -->
<link rel='stylesheet' href='{% get_static_prefix %}Columnal/columnal.css' type='text/css' media='screen' />
<!-- Custom CSS -->
<link rel='stylesheet' type='text/css' href='{% get_static_prefix %}Style.css' />
{% block head %}
{% endblock %}
</head>
<body>
<header>
<table width='100%'>
<tr>
{% if user.is_authenticated %}
<td>Welcome, {{user.username}}!</td>
<td align='right'><a href='logout/'>Logout</a></td>
{% else %}
<td><a href='login/'>Login / Register</a></td>
{% endif %}
</tr>
</table>
</header>
{% block content %}
{% endblock %}
</body>
</html>
Конечно, хотя и предназначен длярасширенная дочерним шаблоном, эта страница сама по себе имеет смысл, и действительно, когда она отображается, я вижу то, чего ожидала и чего хотела.
Однако, когда я пыталась расширить этот файл с дочерним элементомшаблон, я получил некоторые неожиданные результаты, поэтому я попытался сократить его до абсолютного минимума, а именно:
{% extends '_base.html' %}
Всего одна строка кода.Можно было бы подумать, что, если я отобразлю этот файл, я получу тот же результат, что и при отображении самого _base.html.Тем не менее, это не тот случай.По какой-то причине, когда я использую этот простой дочерний шаблон, над заголовком появляется лишняя белая линия небытия.Что еще более странно, что если я выбираю источник просмотра для обеих страниц (то есть страницы, которую я получаю непосредственно из _base.html и страницы, которую я получаю из дочернего шаблона), он говорит, что код источника точно такой же (яиспользуя Chrome).Как получается, что два файла, которые должны отображать одну и ту же страницу, дают один и тот же точный исходный код (в соответствии с браузером), но отображают по-разному.
Это полностью поражает меня, и я понятия не имею, что может бытьвызывая это.Насколько я понимаю, Django делает это за кулисами и передает браузеру необработанный HTML-файл, так что браузер не должен заботиться о том, как я генерировал HTML, если он одинаковый.Как тогда эти два метода могли дать разные результаты?Любая помощь будет очень признательна, так как я застрял на этом в течение последних двух дней.
PS: Я сожалею, что код для _base.html немного длинен для сообщения на форуме.Я, вероятно, мог бы немного отрубиться, но, поскольку я понятия не имею, что здесь происходит, у меня нет понятия о том, что имеет значение, а что нет, поэтому я не хотел рисковать.
РЕДАКТИРОВАТЬ: Как я упоминал ранее, (в Chrome), если я щелкну правой кнопкой мыши и выберу «Просмотр исходного кода страницы» для обеих страниц, я получу точно такой же исходный код.Однако, если вместо этого я выберу «Проверить элемент», исходный код не будет таким же.По какой-то причине при просмотре исходного кода с помощью 'Inspect element' с использованием дочерней версии шаблона я нахожу все содержимое в теге <head>
_base.html, расположенном в теге <body>
исходного кода, который я вижу.Есть идеи, почему это произойдет?