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

Django模板中能否正常使用JavaScript模板字符串?

问题原因
  • Django 模板的渲染逻辑运行在服务端,JavaScript 代码的执行逻辑运行在客户端浏览器,二者存在明确的先后顺序:服务端完成模板渲染、把生成的静态HTML/JS内容返回给浏览器后,浏览器才会解析执行JS代码。
  • 你写的{{ static() }}是Django模板标签,服务端渲染时会直接把括号内的内容当成普通字符串处理,不会识别其中属于JS语法的${index+1}模板变量,所以会把这段内容原样做URL编码后生成静态路径,自然就得到了带%24%7Bindex%2B1%7D的错误路径。
解决方案

你不能直接在Django的static标签内部插入JS模板变量,只需要把静态资源的固定路径前缀提前通过Django模板渲染暴露给JS,动态拼接的部分交给JS自己处理即可:

// 先通过Django模板渲染出固定的目录路径前缀
const principleIconBasePath = "{{ static('images/Principle_Icon/') }}";
// JS侧自行拼接动态文件名
image.src = `${principleIconBasePath}Principle${index+1}.svg`;
console.log(image.src)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:36:08