【问题标题】:How to stop Django from escaping the # symbol如何阻止 Django 转义 # 符号
【发布时间】:2017-04-05 08:32:40
【问题描述】:

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

<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>

所以问题在于转义。

有谁知道如何避免这种逃避的发生?

【问题讨论】:

标签: python django svg escaping


【解决方案1】:

需要把id移到静态标签后面

{% static 'images/site-icons.svg#icon-twitter' %}

应该是

{% static 'images/site-icons.svg' %}#icon-twitter

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多