Django Статическое изображение не отображается при использовании блока - PullRequest
0 голосов
/ 21 октября 2019

Я использую Django, я пытаюсь отобразить изображение, но получаю ошибку.

Недопустимый тег блока в строке 35: «статический», ожидаемый «конечный блок». Вы забыли зарегистрировать или загрузить этот тег?

Если я добавил свое изображение непосредственно на страницу index.html, то изображение отображается, но когда я использую extends и block для отображения, я получаюошибка.

setting.py

STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR,'static'),
)

home.html

  {% extends 'demo1/index.html' %}
    {% block content %}
    <img src="{% static 'images/web/landing-page.png' %}" alt="Landing Page">
   {% endblock %}

index.html

{% load static from staticfiles %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>{% block title%}Home{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'css/style.css'%}" type="text/css">
</head>
<body>
    {% block content %}

     {% endblock %}
</body>
</html>

Ответы [ 3 ]

1 голос
/ 21 октября 2019

Вы пропустили открытие { в вашем home-page

{% extends 'demo1/index.html' %}
{% load static %}
{% block content %}
    <img src="{% static 'images/web/landing-page.png' %}" alt="Landing Page">
{% endblock %}

ПРИМЕЧАНИЕ

Документация Django теперь предпочитает {% load static %}. {% load staticfiles %} работает, но я думаю, что это устарело. https://docs.djangoproject.com/en/dev/ref/templates/builtins/#static

Обновление:

Из Django docs :

Тег включения должен рассматриваться какреализация «рендеринга этого подшаблона и включения HTML», а не как «разбора этого подшаблона и включения его содержимого, как если бы он был частью родительского». Это означает, что между включенными шаблонами нет общего состояния - каждое включение является полностью независимым процессом рендеринга.

Поэтому, пожалуйста, загрузите также файл static на свою домашнюю страницу

1 голос
/ 21 октября 2019

Сделайте только {% load static %} поверх вашего home.html шаблона.

0 голосов
/ 21 октября 2019

Вам не хватает скобки в вашем доме. HTML1

{% extends 'demo1/index.html' %} {% block content %} <img src="{% static 'images/web/landing-page.png' %}" alt="Landing Page"> % endblock %}

должно быть

{% extends 'demo1/index.html' %} {% block content %} <img src="{% static 'images/web/landing-page.png' %}" alt="Landing Page"> {% endblock %}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...