【发布时间】:2020-03-02 08:59:24
【问题描述】:
我创建了一个 SVG 精灵表,现在正在研究在我的 Django 模板中使用它的各种方法。
最简单的方法是:
- 在
templates/文件夹中添加spritesheet(例如templates/svg_spritesheet.svg) - 将其包含在 Django 模板中,如下所示:
{% include "svg_spritesheet.svg" %} - 通过以下方式调用 HTML 代码中的给定 svg:
<svg><use xlink:href="#my_svg"></use></svg>
这对我有用。但这种方法存在操作上的缺陷。
例如:我通常将我的静态资产停放在{{ STATIC_URL }}。这对组织目的更好。其次,我对{{ STATIC_URL }} 中的资产使用了网络服务器级别的缓存。但是,我没有为我的/templates 文件夹使用这种缓存。
因此,在我看来,如果我将 SVG spritesheets 停在{{ STATIC_URL }} 会更好。但是一旦我这样做了,我如何将它包含在我的 Django 模板中?
以下方法均无效:
{% include 'static/svg_spritesheet.svg' %}{% include '{{ STATIC_URL }}svg_spritesheet.svg' %}<object type="image/svg+xml" data="{{ STATIC_URL }}svg_spritesheet.svg"></object><link type="image/svg+xml" href="{{ STATIC_URL }}svg_spritesheet.svg">
专家能否举例说明如何使用位于{{ STATIC_URL }} 的 SVG 精灵表?在此先感谢(如果有必要,我将Django 1.8.19 用于相关项目)。
注意:如果您错过了 - 这个问题涉及 SVG 精灵表,而不是单个 SVG。单个精灵表包含多个 SVG 图像 - 可以在需要时(以及何时)选择性地调用。
【问题讨论】: