Django Compressor

django-compressor автоматически сжимает и объединяет CSS и JavaScript файлы для улучшения производительности.

Установка

1# Установка пакета
2pip install django_compressor
1# Или через Poetry
2poetry add django_compressor

Настройка

 1# settings.py
 2INSTALLED_APPS = [
 3    'compressor',
 4]
 5
 6STATICFILES_FINDERS = [
 7    'compressor.finders.CompressorFinder',
 8]
 9
10COMPRESS_ENABLED = True
11COMPRESS_OFFLINE = True  # Для production

Использование в шаблонах

 1{% load compress %}
 2
 3{% compress css %}
 4<link rel="stylesheet" href="{% static 'css/style1.css' %}">
 5<link rel="stylesheet" href="{% static 'css/style2.css' %}">
 6{% endcompress %}
 7
 8{% compress js %}
 9<script src="{% static 'js/script1.js' %}"></script>
10<script src="{% static 'js/script2.js' %}"></script>
11{% endcompress %}

Настройка сжатия

 1# settings.py
 2COMPRESS_CSS_FILTERS = [
 3    'compressor.filters.css_default.CssAbsoluteFilter',
 4    'compressor.filters.cssmin.rCSSMinFilter',
 5]
 6
 7COMPRESS_JS_FILTERS = [
 8    'compressor.filters.jsmin.JSMinFilter',
 9]
10
11# Настройка кэширования
12COMPRESS_CACHE_KEY_FUNCTION = 'compressor.cache.simple_cachekey.simple_cachekey'
13COMPRESS_CACHE_BACKEND = 'default'

Команды управления

1# Создание сжатых файлов
2python manage.py compress
3
4# Очистка кэша
5python manage.py compress --force

FAQ

Q: Как настроить минификацию?
A: Используй COMPRESS_CSS_FILTERS и COMPRESS_JS_FILTERS.

Q: Можно ли использовать с CDN?
A: Да, настрой COMPRESS_URL и COMPRESS_ROOT.