Что не так с моим Django templating, не загружающим статические файлы?
Я совсем новичок в Django, поэтому буду благодарен за любую помощь!
Я пытаюсь решить эту проблему уже несколько часов, но надежды нет.
Я хочу использовать шаблон Django. У меня есть base.html
и home.html
, которые расширяют base.html.
Base.html
- это просто макет, с верхним и нижним колонтитулами.
Home.html
- это просто содержимое, которое я хочу отобразить, например, логотип.
Base.html:
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" type="text/css" href="{% static 'restaurant/css/styles.css' %}">
<title>{% block title %}Little Lemon{% endblock %}</title>
</head>
<body>
<div class="navbar">
<a href="/restaurant/"><img src="{% static 'restaurant/images/logo.png' %}" alt="Little Lemon" style="height:40px;"></a>
<a href="/restaurant/menu">Menu</a>
<a href="/restaurant/about">About</a>
<a href="/restaurant/contact">Contact</a>
</div>
<div class="container">
{% block content %}
{% endblock %}
</div>
<div class="footer">
<p>© 2024 Little Lemon. All rights reserved.</p>
</div>
</body>
</html>
Home.html:
{% extends 'restaurant/base.html' %}
{% block title %}Home{% endblock %}
{% block content %}
<h1>Welcome to Little Lemon!</h1>
<p>Enjoy the best food in town at our cozy restaurant. We offer a wide variety of dishes made from the freshest ingredients.</p>
<img src="{% static 'restaurant/images/logo.png' %}" alt="Little Lemon" style="width:100%;max-width:600px;">
<p>Visit us for a dining experience you'll never forget.</p>
{% endblock %}
Я попробовал упростить его и использовать только home.html. Стили и логотипы отображаются, поэтому я уверен, что django знает, где найти статические файлы. Но когда я разделяю HTML на части и расширяю их вместе, возникает ошибка, говорящая:
TemplateSyntaxError at /restaurant/
Invalid block tag on line 8: 'static', expected 'endblock'. Did you forget to register or load this tag?
Мне приходится добавлять тег {% load static %}
в home.html
, чтобы успешно загрузить статический файл. Но если я правильно помню, нужно добавить тег {% load static %}
только один раз в родительском(?) шаблоне, и другие шаблоны смогут загрузить статику. Так что же здесь не так?
Вот репозиторий, если кто-то хочет протестировать его: https://github.com/jethro-dev/LittleLemon