2014-07-16 12 views
9

Ich versuche, Django-Kompressor arbeiten mit Mezzanine. Für den ersten Versuch habe ich einfach django compressor installiert (wie es für Mezzanine gemacht werden sollte) und DEBUG = False geändert, aber nichts in HTML verändert, das von Django generiert wurde. Also folgte ich die Dokumentation von django Kompressor und ich geändert meine settings.py:Django Compressor verkleinert keine Dateien

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 

Dies sind die in meiner Umgebung installierten Pakete:

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 

Hier, wie ich verwendet Kompressor in Vorlagen:

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

und es ist nichts passiert, bis ich ins Leben gerufen:

Python manage.py --force

komprimieren So, jetzt habe ich die Cache bestückt und die HTML von Django erzeugt verweist auf die Dateien im Cache-Speicher wie:

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

aber die Dateien nicht minimiert, django kompressor einfach kopiert sie und änderte den namen. Wissen Sie, warum der Kompressor sie nicht minimiert?

Antwort

2

Das Problem wurde die Memcached, es zu deaktivieren, Django Probleme von Berechtigungen zeigte und die CSS I wie compressor.filters.cssmin.CSSMinFilter

31

Django Kompressor auf dem django-Server ausgeführt wird kein Filter ausgewählt hatte minify sogar mit DEBUG = False. Es wird auch standardmäßig nur alle Ihre CSS-Dateien zu einem zusammenführen. Um andere Dinge wie minify zu tun, können Sie einen Filter anwenden. Hier ist, was ich in meinem settings.py getan habe

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

Ich denke, das wird für andere hilfreich sein. Prost!