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

Django模板字符串替换失败:无法将城市变量渲染到静态资源路径

解决Django模板中静态文件路径变量替换问题

你遇到的问题核心在于Django模板标签内部无法嵌套使用{{ }}变量语法——当你在{% static %}标签里写{{city}}时,模板引擎会把它当成普通字符串处理,最终被URL转义成了%7B%7Bcity%7D%7D,自然无法正确替换成城市名称。

正确的解决方法:用模板过滤器拼接路径

你可以借助Django的add过滤器,把静态文件的基础路径、城市变量和后缀名拼接起来,再传给static标签:

{% for city in cities %}
  <div style="background-image: url({% static 'app/img/'|add:city|add:'.jpg' %});">
{% endfor %}

另一种更直观的可选方案

如果觉得过滤器拼接的写法不够清晰,也可以先通过with标签定义完整的图片路径变量,再传入static标签:

{% for city in cities %}
  {% with img_path='app/img/'|add:city|add:'.jpg' %}
    <div style="background-image: url({% static img_path %});">
  {% endwith %}
{% endfor %}

这两种写法都会让模板引擎正确解析city变量,最终生成你预期的/static/app/img/London.jpg这类正确路径。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 12:52:31