我正在尝试让媒体目录中的文件显示在 HTML 模板上。我使用“Tango with Django”书作为教程。
这是我的settings.py
:
MEDIA_DIR = os.path.join(BASE_DIR, 'media')
MEDIA_ROOT = MEDIA_DIR
MEDIA_URL = '/media/'
这是views.py
:
def about(request):
return render(request, 'rango/about.html', )
还有我的 about.html
模板:
<!DOCTYPE html>
{%load staticfiles%}
<html lang="en">
<head>
<meta charset="UTF-8">
<title>About</title>
</head>
<body>
<h1>This is the about page</h1>
<img src="{{MEDIA_URL}} {{cat.jpg}}"
alt="cats are funny"/>
<div>
<a href="/rango/"> Index </a>
</div>
</body>
</html>
我知道我一定错过了一些非常明显的东西,但我一生都无法弄清楚!
最佳答案
{{MEDIA_URL}}
标记已弃用。使用{% get_media_prefix %}
相反,标签。
<img src="{% get_media_prefix %}cat.jpg" alt="cats are funny"/>
来自文档:
Similar to the
get_static_prefix
,get_media_prefix
populates a template variable with the media prefixMEDIA_URL
.
渲染后,src
属性将等同于 /media/cat.jpg
。您可能需要考虑在 settings.py
中使用 STATIC_ROOT
以及 {% static %}
标记:
<img src="{% static 'cat.jpg' %}" alt="cats are funny"/>
关于python - 在 Django 模板中使用静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46009123/