Django压缩器和模板继承

Mat*_*ngo 11 django django-templates minify

我正在使用Django 1.2.3中的django-compressor应用程序来缩小和合并一些包含的CSS和JS文件.在基础模板中,我有

{% load compress %}
{% compress js %}
{% block js %}
<script type="text/javascript" src="/site_media/js/jquery.query-2.1.7.js">
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

在一个孩子,

{% block js %}
{{block.super}}
<script type="text/javascript" src="/site_media/js/jquery.validate.min.js">
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

模板渲染时,第一个脚本标记正确缩小,但第二个不是.在类似的场景中,我已经确认问题是继承.

我不想在子模板中继续使用压缩标签,因为使用此应用程序的一半要点是合并文件并减少HTTP请求.我错过了什么吗?我应该研究另一个解决方案吗?

Bra*_*kle 15

我使用django-compressor和Django 1.2,我把它设置成这样:

{% compress js %}
<script type="text/javascript" src="{{ MEDIA_URL }}js/jquery-1.4.2.min.js"></script>
{% block extra_compressed_js %}{% endblock %}
{% endcompress %}

{% block external_js %}{% endblock %}
Run Code Online (Sandbox Code Playgroud)

使用我的extra_compressed_js块,我将经常使用您描述的方法,{{ block.super }}通过继承添加更多js.它对我有用而没有任何麻烦.您必须要注意的一件事是,所有要压缩的JS都需要在本地文件系统上可用.这就是为什么我有一个单独的external_js块,因为JS来自外部源.

听起来像是在发生其他事情.确保您的压缩器副本是最新的,然后检查您的继承以确保它实际上正常工作.一种方法是设置COMPRESS=False您的设置并确保您想要包含的所有JavaScript实际显示在渲染模板中.