Лучший способ развертывания сжатых ресурсов - Django Compressor

Так что у меня есть хитрая проблема, для которой я не могу найти лучшего решения.

я использую django-compressor который делает большую работу по сжатию / минимизации файлов. Проблема, с которой я сталкиваюсь, связана с развертыванием. Некоторое время я просто использую compress тег на производство, и я просто скручиваю на всех страницах, чтобы убедиться, что он восстанавливает правильный CSS/JS. Таким образом, новые пользователи не должны чувствовать тяжесть процесса сжатия.

Я знаю, что у него есть команда управления, которая может предварительно сжимать файлы, которые затем могут быть переданы в CDN и, возможно, предварительно загружены за кулисы на страницах посадки / входа в систему.

Вот проблема, в некоторых кодах javascript я использую контекстные переменные и теги django [как пользовательские, так и нативные].

var first = '{% some_tag some_context_var %}';
var name = '{{some_context_var}}';

Это вызывает ошибку, так как во время сжатия он пытается выполнить тот тег, который явно не имеет значений. Это идет с COMPRESS_OFFLINE_CONTEXT но это не динамично.

Кто-нибудь сталкивался с этой проблемой раньше. Как вы выполняете сжатие, если код смешан с некоторыми тегами / переменными контекста django?

1 ответ

Нашел способ решить эту проблему.

По сути, переменные перемещаются в свои собственные блоки скриптов за пределами компрессора, а затем используют эти переменные в коде сжатия. например

 <script type="text/javascript">
    var some_var = '{% something ctx_var %}';
 </script>

 {% compress js %}
     //before it was do_something_function('{% something ctx_var %}') 
     do_something_function(some_var); 
Другие вопросы по тегам