Django 压缩器找不到任何“compress”标签

Django compressor fails to find any `compress` tags

我正在尝试将 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 标签 templatetags 与 django-compress 完全无关。

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

希望这可以帮助您调试语法错误。 调试的最后手段是使用 pdb 进入 compress.py:169 并检查为什么 compressor_nodes 为空。 import pdb; pdb.set_trace()