【问题标题】:Using django-compressor with render_block from sekizai_tags使用 django-compressor 和 sekizai_tags 中的 render_block
【发布时间】:2015-08-22 13:45:41
【问题描述】:

我希望能够

  1. 将所有 js/css 编译成单个缩小文件,这就是 django-compressor 所做的。
  2. 能够从包含和继承的模板中添加 js/css 文件。

当我尝试时:

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

我收到错误:Invalid block tag: 'endcompress'

但我认为主要原因是来自sekizai docs

{% render_block %} 标签不得放置在模板标签块内(带有结束标签的模板标签,例如{% block %}...{% endblock %}{% if %}...{% endif %})。

我做错了什么还是有其他方法?

【问题讨论】:

    标签: django django-templates django-compressor django-sekizai


    【解决方案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,否则它将不起作用(除非它在同一个模板文件中):

    如果{% addtoblock %}标签用于扩展模板,标签必须放在{% block %}...{% endblock %}标签内。

    【讨论】:

      猜你喜欢
      • 2013-02-09
      • 2015-04-05
      • 1970-01-01
      • 2017-04-11
      • 2014-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      相关资源
      最近更新 更多