首页 > 解决方案 > 为什么我不能使用 jinja 模板将静态图像文件的位置从我的 Django 视图传递到我的 html 文件?

问题描述

我正在尝试通过将 .jpg 文件的名称从视图传递给 html jinja 模板来将图像添加到 HTML 页面。该图像位于一个静态文件夹中,如果文件名直接编码,则会根据需要显示,但当我尝试通过 Jinja 传递它时不会。

Django查看代码:

def page(request):

   location = '''src="{% static 'image.jpg' %}"'''

   return(render(request, 'page.html', {'location':location})

HTML页面上的代码:

{% load static %}

<img {{location}} alt="image">

图像文件位于 Django 项目根目录下的静态文件夹中

我还尝试了要传入的字符串和 HTML 的其他组合,包括:

location = '''"{% static 'image.jpg' %}"'''
<img src={{location}} alt="image"> 

location = "'image.jpg'"
<img src= "{% static {{location}} %}" alt="image"> 

当我直接将文件名编码如下:

<img src= "{% static "image.jpg" %}" alt="image"> 

图像按需要呈现。

我觉得我有什么误解,但我不确定是什么。当我搜索时,我找不到另一个询问如何执行此操作的问题,所以如果您知道我没有找到的答案,请原谅我!

标签: htmldjangodjango-viewsjinja2src

解决方案


好的......所以这有效:

location = "\image.jpg"

<img src= "{% static location %}" alt="things">

位置变量名称开头的那个额外的斜线是缺少的!不敢相信事情就这么简单。


推荐阅读