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

Django模板图片无法加载:URL转义引发的问题

解决Django模板中S3带签名URL转义导致图片无法加载的问题

Django模板默认会对变量内容进行HTML转义,将&这类特殊字符转换为&,这会导致带签名的S3 URL中的参数被破坏,最终图片无法加载。

解决方案

方法1:在模板中使用safe过滤器

直接在模板变量后添加safe过滤器,告知Django该URL无需转义:

<img src="{{ data.image.path|safe }}">

方法2:在视图层标记URL为安全字符串

如果该URL需要在多个模板位置使用,可以在视图中用mark_safe标记它为安全内容,避免重复添加过滤器:

from django.utils.safestring import mark_safe

# 将S3 URL标记为安全字符串
data.image.path = mark_safe(data.image.path)

params = {
    'obj': obj,
    'data': data,
}
return render_to_string('records/record.html', params), obj

两种方法都能有效阻止Django对URL中的&进行转义,确保带签名的S3 URL能正常被浏览器解析,图片顺利加载。

内容的提问来源于stack exchange,提问作者Anoop

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:09:21