Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django压缩器和模板继承_Django_Django Templates_Minify - Fatal编程技术网

Django压缩器和模板继承

Django压缩器和模板继承,django,django-templates,minify,Django,Django Templates,Minify,我正在使用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 %} {%load compress%} {%js%} {%block js%} {%endblock

我正在使用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 %}
{%load compress%}
{%js%}
{%block js%}
{%endblock%}
在一个孩子身上

{% block js %}
{{block.super}}
<script type="text/javascript" src="/site_media/js/jquery.validate.min.js">
{% endblock %}
{%block js%}
{{block.super}}
{%endblock%}
当模板渲染时,第一个脚本标记正确缩小,但第二个脚本标记没有缩小。在类似的场景中,我已经确认问题在于继承


我不想继续在子模板中使用压缩标记,因为使用这个应用程序的一半目的是合并文件并减少HTTP请求。我错过什么了吗?还有其他解决方案吗?

我不知道这是否可行,但似乎值得一试:

首先,在基础模板中包含以下块:

{% 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 %}
然后在给定的子模板中:

{% 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 js%}
{{block.super}}
{%endblock%}

始终使用block.super。正如我所说,我不知道它是否能工作,但它可能会工作。

我将django压缩机与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 %}
{%compress js%}
{%block extra_compressed_js%}{%endblock%}
{%endcompress%}
{%block外部_js%}{%endblock%}
对于我的
extra_compressed_js
块,我将经常使用您描述的方法,使用
{{block.super}
通过继承添加更多的js。这对我来说没有任何问题。需要注意的一点是,所有要压缩的JS都需要在本地文件系统上可用。这就是为什么我有一个单独的
external_js
块,用于来自外部源的js


对我来说,这听起来像是发生了什么事。确保压缩程序的副本是最新的,然后检查继承以确保它实际工作正常。一种方法是在设置中设置
COMPRESS=False
,并确保要包含的所有javascript都显示在渲染模板中。

在我的压缩中意外包含了一个外部样式表-非常感谢!如果使用脱机压缩(例如,
django-admin.py compress
),此功能是否仍然有效?虽然它适用于请求内压缩,但在脱机压缩期间,它似乎无法为从该文件继承的页面正确创建文件。