Django Compressor does not minify files

I am trying to let django-compressor working with mezzanine. For first attempt I simply installed django compressor (as should be done for Mezzanine) and changed DEBUG = False but nothing changed in HTML generated from Django. So I followed the docs of django compressor and I modified my 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

These are the packages installed in my environment:

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

Here, how I used compressor in templates:

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

and nothing happened until I launched:

python manage.py compress --force

So now I have the cache populated and the HTML generated from Django points to the files in CACHE like:

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

but the files are not minified, django compressor simply copied them and changed the name. Do you know why the compressor not minify them?


Django compressor will not run on the django server even with DEBUG = False . It also by default only will merge all your css files into one. To do other things like minify you can apply a filter. Here is what I did in my settings.py

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

I think this will be helpful for others. Cheers!


问题是memchached,禁用它,Django显示权限的问题,并缩小的CSS我不得不选择一个过滤器像compressor.filters.cssmin.CSSMinFilter

链接地址: http://www.djcxy.com/p/68518.html

上一篇: Gulp CSS minify&gzip + django

下一篇: Django Compressor不会缩小文件