Использование django-компрессора с render_block от sekizai_tags
Я хотел бы иметь возможность
- Скомпилируйте все js/css в отдельные уменьшенные файлы, вот что
django-compressor
делает. - Уметь добавлять файлы js/css из включенных и унаследованных шаблонов.
Когда я пытаюсь:
{% compress css file %}
{% render_block "css" %}
{% endcompress %}
Я получаю ошибку: Invalid block tag: 'endcompress'
Но я думаю, что основная причина - в документах sekizai:
{% render_block %}
теги не должны быть помещены в блок тегов шаблона (тег шаблона, который имеет конечный тег, такой как{% block %}...{% endblock %}
или же{% if %}...{% endif %}
).
Я сделал что-то не так или есть другой способ?
1 ответ
Кажется, django-компрессор явно обеспечивает это взаимодействие, но не путем render_block
внутри compress/endcompress
:
{% load sekizai_tags %} {% render_block "<js/css>" postprocessor "compressor.contrib.sekizai.compress" %}
На самом деле, {% compress %}
тег здесь просто не используется.
<head>
...
<!-- css -->
{% render_block "css" postprocessor "compressor.contrib.sekizai.compress" %}
{% block css %}{% endblock %}
<!-- end js -->
...
</head>
... then in another template ...
{% block css %}
{% addtoblock "css" %}
{{ form.media.css }}
<link rel="stylesheet" type="text/css" href="..." />
{% endaddtoblock %}
{% endblock %}
я использую block css
просто ради того, чтобы любой блок поставить addtoblock
в, иначе это не будет работать (если это не находится в том же файле шаблона):
Если
{% addtoblock %}
тег используется в расширяемом шаблоне, теги должны быть размещены внутри{% block %}...{% endblock %}
теги.