如何阻止Django转义#符号

Xir*_*fer 2 python django svg escaping

我正在尝试将SVG sprite用于网站中的图标,如下所示:

<svg aria-hidden="true" class="icon">
    <use xlink:href="{% static 'images/site-icons.svg#icon-twitter' %}"></use>
</svg>
Run Code Online (Sandbox Code Playgroud)

但是这不起作用,因为#jando会逃脱#,所以我最终得到:

<svg aria-hidden="true" class="icon">
    <use xlink:href="/static/images/site-icons.svg%23icon-twitter"></use>
</svg>
Run Code Online (Sandbox Code Playgroud)

因此没有图标呈现.我已经发现问题是逃避,因为如果我粘贴site-icons.svg模板中的内容就可以了

<svg aria-hidden="true" class="icon">
    <use xlink:href="#icon-twitter"></use>
</svg>
Run Code Online (Sandbox Code Playgroud)

所以问题在于逃避.

有人知道如何逃避这种逃避吗?

Say*_*yse 7

您需要在静态标记之后移动id

{% static 'images/site-icons.svg#icon-twitter' %}
Run Code Online (Sandbox Code Playgroud)

应该

{% static 'images/site-icons.svg' %}#icon-twitter
Run Code Online (Sandbox Code Playgroud)

这背后的原因是静态标签的工作是找到静态文件的路径,所以它需要的只是文件的位置,之后需要添加任何额外的东西,以便在渲染模板时,它显示为单个(连接?)链接