我正在使用 Django的压缩机 Django 1.2.3中的应用程序缩小并合并了许多包含的CSS和JS文件。在基本模板中,我有
{% load compress %}
{% compress js %}
{% block js %}
<script type="text/javascript" src="/site_media/js/jquery.query-2.1.7.js">
{% endblock %}
在一个孩子,
{% block js %}
{{block.super}}
<script type="text/javascript" src="/site_media/js/jquery.validate.min.js">
{% endblock %}
模板渲染时,第一个脚本标记正确缩小,但第二个不是。在类似的场景中,我已经确认问题是继承。
我不想在子模板中继续使用压缩标签,因为使用此应用程序的一半要点是合并文件并减少HTTP请求。我错过了什么吗?还有其他解决方案我应该研究一下吗?
我在Django 1.2中使用django-compressor,我把它设置成这样:
{% 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 %}
和我一起 extra_compressed_js
块我会经常使用你描述的方法 {{ block.super }}
通过继承添加更多js。它对我有用而没有任何麻烦。您必须要注意的一件事是,所有要压缩的JS都需要在本地文件系统上可用。这就是为什么我有一个单独的 external_js
阻止,来自外部源的JS。
听起来像是在发生其他事情。确保您的压缩器副本是最新的,然后检查您的继承以确保它实际上正常工作。一种方法是通过设置 COMPRESS=False
在您的设置中,并确保您想要包含的所有JavaScript实际显示在呈现的模板中。
我在Django 1.2中使用django-compressor,我把它设置成这样:
{% 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 %}
和我一起 extra_compressed_js
块我会经常使用你描述的方法 {{ block.super }}
通过继承添加更多js。它对我有用而没有任何麻烦。您必须要注意的一件事是,所有要压缩的JS都需要在本地文件系统上可用。这就是为什么我有一个单独的 external_js
阻止,来自外部源的JS。
听起来像是在发生其他事情。确保您的压缩器副本是最新的,然后检查您的继承以确保它实际上正常工作。一种方法是通过设置 COMPRESS=False
在您的设置中,并确保您想要包含的所有JavaScript实际显示在呈现的模板中。
我不知道这是否有效,但似乎值得一试:
首先在基本模板中包含以下块:
{% compress js %}
{% block js %}
{% endblock %}
{% endcompress %}
{% compress css %}
{% block css %}
{% endblock %}
{% endcompress %}
然后在给定的子模板中:
{% block js %}
{{ block.super }}
<script type="text/javascript" src="/site_media/js/jquery.query-2.1.7.js">
{% endblock %}
始终使用block.super。就像我说的,我不知道它是否会起作用,但它可能。