Лучший способ развертывания сжатых ресурсов - 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);