我正在使用Django,正在尝试显示图像,但出现错误。
第35行上的无效块标记:“静态”,预期为“ endblock”。你是否 忘记注册或加载此标签?
如果我将图像直接添加到index.html页面上,则该图像会显示,但是当我使用扩展和块显示时,会出现错误。
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>
答案 0 :(得分:1)
您错过了{
中打开的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:
include标签应被视为“ render”的实现 此子模板并包含HTML”,而不是“解析此子模板” 并包括其内容,就好像它是父母的一部分一样。”这意味着 包含的模板之间没有共享状态-每个 include是一个完全独立的渲染过程。
因此,也请在您的首页中加载static
文件
答案 1 :(得分:1)
只需在您的 home.html 模板顶部{% load static %}
。
答案 2 :(得分:0)
您在home.html中缺少大括号
{% 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 %}