Django字典键值传入HTML模板后无法加载对应静态图片如何解决
问题原因
你当前的写法错误原因是Django的{% static %}模板标签内部不支持直接嵌套{{ }}变量输出语法,两种语法不能嵌套使用。
解决方案
方案1(最简洁):拆分静态路径与变量拼接
直接先输出静态文件夹前缀路径,再直接拼接变量和后缀即可,修改HTML模板代码为:
<div class="row"> <img src="{% static 'wea_app/icons/' %}{{ mainresult.icons }}.png" alt="天气图标"> <div>
原理:{% static 'wea_app/icons/' %}会先输出静态资源目录下wea_app/icons/对应的完整访问路径,后续直接拼接变量值和.png后缀即可得到完整的图标访问地址。
方案2:预先拼接完整路径传入static标签
如果你需要把完整路径作为参数传入static标签,可通过模板过滤器add拼接路径后传入:
<div class="row"> {% with 'wea_app/icons/'|add:mainresult.icons|add:'.png' as icon_path %} <img src="{% static icon_path %}" alt="天气图标"> {% endwith %} <div>
两种方案均可正常实现图标加载,任选其一即可。
内容的提问来源于stack exchange,提问作者18106111 HICET - STUDENT ECE
相关产品推荐
相关产品推荐

