Ok, dachte, ich würde das hier posten, bevor ich unzählige Stunden meines Lebens damit verschwende, etwas zu reparieren, auf das jemand eine einfache Antwort hat. Wir verwenden django-compressor und haben Probleme, wenn wir COMPRESS_OFFLINE = True setzen. Wir scheinen unten zufällig einen Fehler zu machen. Manchmal lädt die Seite und manchmal nicht. Es funktioniert einwandfrei mit COMPRESS_OFFLINE = False.
You have offline compression enabled but key "cdfe134683bd23a2ea9de19b46490a13" is missing from offline manifest.
Hier ein paar Details zu unserem Setup.
Django 1.6.3
django-Kompressor 1.3
Google-Cloud-Speicher 0.3
Nginx
Gunicorn
Wir verwenden Google Cloud, um statische Inhalte bereitzustellen, einschließlich des Caches für den Kompressor. Hier sind unsere Einstellungen für Kompressor.
STATIC_URL = 'https://xxxxx.storage.googleapis.com/static/'
COMPRESS_ENABLED = True
COMPRESS_OFFLINE = True
COMPRESS_STORAGE = 'google_folder_storage.google.CacheStorage'
CACHE_GOOGLE_PATH = "cache"
COMPRESS_URL = STATIC_URL
COMPRESS_CSS_FILTERS = [
'compressor.filters.css_default.CssAbsoluteFilter',
'compressor.filters.cssmin.CSSMinFilter',
]
Ich habe festgestellt, dass das Problem bei {% Compress js inline %} liegt. Ich denke, ich werde das jetzt einfach nicht verwenden
Dies bedeutet normalerweise, dass Sie dynamische Inhalte in Ihren {% compress %}
Blöcken oder Variablen haben, die Sie nicht an COMPRESS_OFFLINE_CONTEXT
. Sie müssten mehr zum Debuggen sehen, z. B. Ihre Vorlagen, Ihr Manifest usw.
Es gab ein paar Probleme. Die erste war, dass wir GS_FILE_OVERWRITE = False hatten, was jedes Mal, wenn wir es kompilierten, eine andere Version des Manifests erstellte. Zum Beispiel wurde eine manifest_1.json erstellt. Wir haben das gelöst, indem wir eine compression_settings.py mit GS_FILE_OVERWRITE = True erstellt und einfach den Befehl mit dieser Einstellungsdatei ausgeführt haben.
Das nächste Problem wurde dadurch verursacht, dass Variablen in {% Compress js inline %} vorhanden waren. Ich denke, dieses Thema kann jetzt geschlossen werden.
Hilfreichster Kommentar
Dies bedeutet normalerweise, dass Sie dynamische Inhalte in Ihren
{% compress %}
Blöcken oder Variablen haben, die Sie nicht anCOMPRESS_OFFLINE_CONTEXT
. Sie müssten mehr zum Debuggen sehen, z. B. Ihre Vorlagen, Ihr Manifest usw.