0

Я хотел бы быть в состоянииИспользование Джанго-компрессора с render_block от sekizai_tags

  1. собрать все JS/CSS в отдельные уменьшенные файлы, что и django-compressor делает.
  2. Можете добавить файлы js/css из включенных и унаследованных шаблонов.

Когда я пытаюсь:

{% compress css file %} 
{% render_block "css" %} 
{% endcompress %} 

Я получаю ошибку: Invalid block tag: 'endcompress'

Но я думаю, что главная причина из sekizai docs:

{% render_block %} tags must not be placed inside a template tag block (a template tag which has an end tag, such as {% block %}...{% endblock %} or {% if %}...{% endif %}).

ли я сделал что-то неправильно или есть другой способ?

ответ

1

кажется django-compressor explicitly provides this interaction, но не помещая 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 в противном случае он не будет работать (если он не находится в том же файле шаблона):

If the {% addtoblock %} tag is used in an extending template, the tags must be placed within {% block %}...{% endblock %} tags.