2015-07-13 5 views
2

Я пытаюсь минимизировать и сжать мой css (и позже js) и обслуживать его. С этой целью я сначала минимизирую и сжимаю его с помощью gulp, а затем обслуживаю файлы gzipped с django-компрессором (так будет сделан только HTTP-запрос).Gulp CSS minify & gzip + django-compressor не работает

Я довольно много после этого руководства: http://www.revsys.com/blog/2014/oct/21/ultimate-front-end-development-setup/

Использование непосредственно на сжат GZIP файлы работает хорошо, однако, когда я пытаюсь группировать их с Джанго-компрессора я получаю следующее сообщение об ошибке:

UncompressableFileError at/
UnicodeDecodeError while processing '..../static/mincss/filename.min.css.gz' 
with charset utf-8-sig: 'utf8' codec 
can't decode byte 0x8b in position 1: invalid start byte 

Какие соответствует тегам сжатия:

{% compress css %} 
     <link rel="stylesheet" href="{{ STATIC_URL }}mincss/filename.min.css.gz"> 
...more files 
    {% endcompress %} 

Я на 99% уверен, что сгенерированные файлы с gzip верны. Это us-ascii (подмножество utf-8), и они содержат файл * .min.css.

Мои соответствующие настройки (что я знаю) для проблемы такие же, как те, которые указаны в руководстве. Единственное отличие состоит в том, что на руководстве он включает CSS файлы, как это:

{% compress css %} 
<link rel="stylesheet" href="{% static "stylesheets/main.css" %}" /> 
<link rel="stylesheet" href="{% static "stylesheets/some-other.css" %}" /> 
{% endcompress %} 

Но этот путь (хотя он работает) не используют сжата GZIP файлов, даже уменьшенные из них. Что мне не хватает?

+0

ли вы COMPRESS_ENABLED = True в настройках, а? Легко пропустить. Мне кажется, что django-compressor думает, что вы передаете ему необработанный файл CSS, а не один уже GZIP'd и его миниатюрный, но это всего лишь предположение. – FlipperPA

+0

Да, к сожалению, я уже передал его. –

ответ

1

Включенный файл не должен содержать расширение с расширением gzipped. Просто предоставив имя файла (* .css), компрессор автоматически проверит и загрузит версию файла gzipped (должно иметь то же имя плюс .gz).

Имейте в виду, что будет загружать сжатые файлы только на производстве (с отладочной = ложным и в автономном режиме сжатия позволяют)

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