我正在尝试将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完全无关。
答案 0 :(得分:0)
根据django-compressor (compress.py:189-204)
的源代码,当您的某个模板中存在语法错误时,会出现OfflineGenerationError
。要调试此错误,您可以更改verbosity > 0
,以便它将打印导致错误的模板名称。
希望这可以帮助您调试语法错误。
调试的最后一步是将pdb用于compress.py:169
并检查compressor_nodes
为空的原因。
import pdb; pdb.set_trace()