2015-03-17 1 views
4

Я пытаюсь реализовать django-compressor в свой проект. Выполнение $ python manage.py compress работы со следующей установкой:Компрессор Django не находит никаких тэгов `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 

Зачем возникает эта ошибка? Тэг templatetags тега extras не имеет ничего общего с django-compress.

ответ

0

В соответствии с исходным кодом django-compressor (compress.py:189-204) такие OfflineGenerationError возникают при наличии синтаксической ошибки в одном из шаблонов. Чтобы отладить эту ошибку, вы можете изменить verbosity > 0, чтобы напечатать имя шаблона, вызывающее ошибку.

Надеюсь, это поможет вам отладить синтаксическую ошибку. Последним средством отладки является использование pdb в compress.py:169 и проверка того, почему compressor_nodes пуст. import pdb; pdb.set_trace()

 Смежные вопросы

  • Нет связанных вопросов^_^