我试图让我的媒体目录中的文件出现在HTML模板上。我正在使用" Tango和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>
我知道我必须遗漏一些非常明显的东西,但不能为我的生活找到它!
答案 0 :(得分:2)
不推荐使用{{MEDIA_URL}}
标记。请改用{% get_media_prefix %}
标记。
<img src="{% get_media_prefix %}cat.jpg" alt="cats are funny"/>
来自文档:
与
get_static_prefix
类似,get_media_prefix
使用媒体前缀MEDIA_URL
填充模板变量。
呈现时,src
属性将等同于/media/cat.jpg
。您可能需要考虑在STATIC_ROOT
中使用settings.py
,而使用{% static %}
标记:
<img src="{% static 'cat.jpg' %}" alt="cats are funny"/>
答案 1 :(得分:0)
我认为问题应该是格式错误。 尝试以下两个修订: 1.在您的render()中,通过删除最后一个逗号,将“ return render(request,'rango / about.html',)”更改为“ return render(request,'rango / about.html')”; 2.在模板文件about.html中,更改。