Django压缩器无法找到任何`compress`标签

时间:2015-03-17 23:05:42

标签: python django django-compressor

我正在尝试将django-compressor实施到我的项目中。执行$ python manage.py compress可以使用以下设置:

<!DOCTYPE html>
<html lang="en">
<head>
    {% load compress %}
    {% compress js %}
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/lodash.compat.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/jquery-1.11.1.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/jquery.color.js"></script>
    {% endcompress %}

这有效:

Compressing... done
Compressed 2 block(s) from 21 template(s).

但是,如果我在该文件中添加了另一个templatetag 任何地方,则会引发错误:

{% load extras %}
<!DOCTYPE html>
<html lang="en">
<head>
    {% load compress %}
    {% compress js %}
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/lodash.compat.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/jquery-1.11.1.js"></script>
        <script type="text/javascript" src="{{ STATIC_URL }}lib/js/jquery.color.js"></script>
    {% endcompress %}

这是错误:

$ python manage.py compress
...
compressor.exceptions.OfflineGenerationError: No 'compress' template tags found in templates.Try running compress command with --follow-links and/or--extension=EXTENSIONS

为什么会出现此错误? extras标签模板标签与django-compress完全无关。

1 个答案:

答案 0 :(得分:0)

根据django-compressor (compress.py:189-204)的源代码,当您的某个模板中存在语法错误时,会出现OfflineGenerationError。要调试此错误,您可以更改verbosity > 0,以便它将打印导致错误的模板名称。

希望这可以帮助您调试语法错误。 调试的最后一步是将pdb用于compress.py:169并检查compressor_nodes为空的原因。 import pdb; pdb.set_trace()