Я создал SVG-спрайт и теперь изучаю различные способы его использования в моих Django шаблонах.
Самый простой способ:
- Добавить таблицу в папку
templates/
(например, templates/svg_spritesheet.svg
) - Включить ее в шаблон Django, например Итак:
{% include "svg_spritesheet.svg" %}
- Призвать данный SVG в коде HTML через:
<svg><use xlink:href="#my_svg"></use></svg>
Это сработало для меня. Но у этого метода есть недостатки в работе.
Например: я обычно паркую свои активы c в {{ STATIC_URL }}
. Это лучше для целей организации. Во-вторых, я использую кэширование на уровне веб-сервера для ресурсов в {{ STATIC_URL }}
. Однако я не использую такое кэширование для своей папки /templates
.
Естественно, мне кажется, что было бы лучше, если бы я размещал свои спрайт-листы SVG на {{ 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">
Может ли эксперт привести иллюстративный пример использования спрайт-листов SVG, размещенных в {{ STATIC_URL }}
? Заранее спасибо (в случае гарантии я использую Django 1.8.19
для рассматриваемого проекта).
Примечание: если вы его пропустили - этот вопрос касается листов спрайтов SVG , а не отдельных SVG. Один спрайт-лист содержит несколько SVG-изображений, которые можно выборочно называть (и когда) необходимыми.