1

Недавно я пробовал Django-Compressor. Это потрясающе, и мне это очень нравится, но у меня возникают проблемы с автономным сжатием (COMPRESS_OFFLINE = True) и тегами шаблонов.Django-компрессор и теги для шаблонов в Django

У меня есть {{django_vars}} и {% django_tags%} внутри моего JS-кода, и я думаю, что компилятор Google Clousure (фильтр, который я использую с Django-Compressor) не знает, чтобы идентифицировать их. На самом деле, я думаю, что структуры шаблонов Django, такие как {% if something%}, удаляются.

Как я могу сделать все эти шаблоны vars/tags в моем коде JS после сжатия?

Спасибо товарищей.

Edit: Наконец, я обнаружил, все проблемы, которые я получил с помощью COMPRESS_OFFLINE, все они произошли из-за ошибки. Они не были о синтаксисе Django внутри JS-кода. Ошибка всегда возникала, когда вы пытались сжать JS-код внутри файла .html, а не внешнего JS. Это не удалось со всеми анализаторами и всеми компиляторами/компрессорами.

Теперь, хотя мне больше нравится django-compressor, чем django-конвейер, я использую этот последний. В настоящий момент проблема с сжатием не возникла.

Спасибо всем, кто пытался мне помочь.

ответ

0

Вы пробовали? JS компилятор Django Compressor вступает в работу ПОСЛЕ создаются шаблонные узлы, IMO. Таким образом, {{ django_vars }} или {% django_tags %} уже заменены их выходами в шаблонах перед сжатием.

Если {{ django_vars }} или {% django_tags %} изменены для каждого вида/шаблона. Он не может сжиматься до одного фрагмента кода. Вам лучше переместить эти части из основных блоков кода JS в блок JS и сжать его отдельно.

+0

Выполнение некоторых тестов с автономным сжатием. Я вижу, что компилятор Google Clousure сжимает и обфускает код без синтаксиса шаблона Django правильно, но в случае, если в JS-коде есть какой-либо синтаксис Django, он терпит неудачу. Я искал решение о том, что Google Clousure игнорирует синтаксис Django, как будто это будет комментарий (это было бы потрясающе в сжатом режиме inline), но я ничего не нашел. Я предполагаю, что мне придется адаптировать мой JS-код, чтобы отделить от него весь синтаксис Django. Во всяком случае, большое спасибо. –

+0

@ RubénJiménez wait, вы имеете в виду, что вы хотите иметь что-то вроде '{% foo%}' в сжатом файле? – okm

+0

Нет, конечно. Я сжимаю все в встроенном режиме ({% compress js inline%}, весь код внутри .html-файлов). Поэтому я хочу, чтобы Google Clousure игнорировал синтаксис Django. Таким образом, я могу хранить все мои Django vars/tags внутри моего JS-кода (например, оригинальный несжатый JS-код). Подводя итог, мне нужен фильтр, который сообщает Google Clousure (или другому компилятору, как YUI) игнорировать весь синтаксис Django и управлять им, как будто это будет комментарий внутри кода. –