Django Compressor не минимизирует файлы

Я пытаюсь позволить django-compressor работать с мезонином. Для первой попытки я просто установил компрессор django (как это должно быть сделано для Mezzanine) и изменил DEBUG = False, но ничего не изменилось в HTML, сгенерированном из Django. Поэтому я следовал документам компрессора django и изменил свой settings.py:

STATICFILES_FINDERS = (
"django.contrib.staticfiles.finders.FileSystemFinder",
#"django.contrib.staticfiles.finders.AppDirectoriesFinder",
#'django.contrib.staticfiles.finders.DefaultStorageFinder',
"compressor.finders.CompressorFinder",
)

INSTALLED_APPS = (
    "django.contrib.admin",
    "django.contrib.auth",
    "django.contrib.contenttypes",
    "django.contrib.redirects",
    "django.contrib.sessions",
    "django.contrib.sites",
    "django.contrib.sitemaps",
    "django.contrib.staticfiles",
    "mezzanine.boot",
    "mezzanine.conf",
    "mezzanine.core",
    "mezzanine.generic",
    "mezzanine.blog",
    "mezzanine.forms",
    "mezzanine.pages",
    "mezzanine.galleries",
    "mezzanine.twitter",
    #"mezzanine.accounts",
    #"mezzanine.mobile",
    #'debug_toolbar',
    "compressor",
)

OPTIONAL_APPS = (
    #"debug_toolbar",
    "django_extensions",
    #"compressor", I commented it to follow the django-compressor doc
    PACKAGE_NAME_FILEBROWSER,
    PACKAGE_NAME_GRAPPELLI,
)

COMPRESS_ENABLED = True
COMPRESS_ROOT = STATIC_ROOT

Это пакеты, установленные в моей среде:

Django==1.6.5
Mezzanine==3.1.5
Pillow==2.5.1
bleach==1.4
distribute==0.6.24
django-appconf==0.6
django-compressor==1.4
filebrowser-safe==0.3.5
future==0.9.0
grappelli-safe==0.3.12
html5lib==1.0b3
oauthlib==0.6.3
pytz==2014.4
requests==2.3.0
requests-oauthlib==0.4.1
six==1.7.3
tzlocal==1.0

Вот как я использовал компрессор в шаблонах:

{% load pages_tags mezzanine_tags i18n future staticfiles compress %}
{% compress css %}
<link rel="stylesheet" href="{% static "css/custom/mycss.css" %}">
{% endcompress %}

и ничего не происходило, пока я не запустил:

python manage.py сжать --force

Итак, теперь у меня заполнен кеш, и HTML, сгенерированный из Django, указывает на файлы в CACHE, например:

<link rel="stylesheet" href="/static/CACHE/css/16e8b98f5bd3.css" type="text/css" media="screen">

но файлы не минимизированы, компрессор django просто скопировал их и изменил имя. Знаете, почему компрессор не минимизирует их?


person Appost    schedule 16.07.2014    source источник


Ответы (2)


Компрессор Django не будет работать на сервере django даже с DEBUG = False. Он также по умолчанию только объединит все ваши файлы css в один. Чтобы делать другие вещи, такие как минимизация, вы можете применить фильтр. Вот что я сделал в моем settings.py

COMPRESS_ENABLED = True
COMPRESS_CSS_FILTERS = ['compressor.filters.css_default.CssAbsoluteFilter',  'compressor.filters.cssmin.CSSMinFilter']

Я думаю, что это будет полезно для других. Ваше здоровье!

person radtek    schedule 17.10.2014

Проблема заключалась в том, что memchached отключил его, Django показал проблемы с разрешениями, и для минимизации css мне пришлось выбрать фильтр, например Compressor.filters.cssmin.CSSMinFilter

person Appost    schedule 18.07.2014