You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何通过render上下文正确渲染商品图片路径?

解决Django模板中静态图片路径解析错误的问题

嘿,别担心,这个问题其实很多刚接触Django的小伙伴都会碰到,咱们一步步来搞定它~

问题根源

你在{% static %}标签里嵌套了{{ product.img }}双大括号变量,这是核心错误。Django模板的解析逻辑是:{% static %}本身就是一个模板标签,它可以直接接收变量作为参数,不需要再用双大括号包裹。当你写成{% static '{{ product.img }}' %}时,Django会把{{ product.img }}当成一个固定的字符串路径,而不是去解析这个变量的值,所以最终路径才会变成转义后的/static/%7B%7B%20product.img%20%7D%7D。

正确写法

把图片那一行的代码改成这样:

<img class="card-img-top" src="{% static product.img %}" alt="{{ product.name }}">

这里直接把product.img变量传给{% static %}标签,Django就会正确解析变量里的图片路径,生成符合预期的静态文件URL啦。

额外配置检查

为了确保静态文件能被正确找到,你可以核对下项目settings.py的配置:

  • 确认STATIC_URL已正确设置(默认是'/static/')
  • 如果你的图片存放在项目根目录下的vendor/img/products文件夹,需要把这个目录添加到STATICFILES_DIRS中,示例配置如下:
STATICFILES_DIRS = [
    BASE_DIR / "vendor",
]

这样Django的静态文件查找器才能定位到你存放在vendor里的图片资源。

内容的提问来源于stack exchange,提问作者Павел Родин

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 16:47:44