我正在尝试为站点中的图标使用 SVG Sprite ,如下所示:
<svg aria-hidden="true" class="icon">
<use xlink:href="{% static 'images/site-icons.svg#icon-twitter' %}"></use>
</svg>
但是这不起作用,因为 # 被 Django 转义了,所以我最终得到:
<svg aria-hidden="true" class="icon">
<use xlink:href="/static/images/site-icons.svg%23icon-twitter"></use>
</svg>
所以没有图标被渲染。
我已经确定问题出在转义上,因为如果我将 site-icons.svg
的内容粘贴到模板中并执行
<svg aria-hidden="true" class="icon">
<use xlink:href="#icon-twitter"></use>
</svg>
所以问题出在转义上。
有谁知道如何避免这种逃逸的发生?
最佳答案
需要把id移到static标签后面
{% static 'images/site-icons.svg#icon-twitter' %}
应该是
{% static 'images/site-icons.svg' %}#icon-twitter
这背后的原因是静态标签的工作是找到静态文件的路径,所以它只需要文件的位置,任何额外的东西都需要添加,以便在呈现模板时显示为单个(串联?)链接
关于python - 如何阻止 Django 转义 # 符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40728775/