我正在尝试让我的媒体目录中的文件出现在 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_prefixpopulates 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"/>
