Ich verwende Django Compressor, um meine Kaffee/weniger Dateien zu verwalten, und es ist großartig für die Entwicklung, aber ich hatte einige Probleme, damit es für meine Produktionsbereitstellung funktioniert.Wie benutzt man den Django-Kompressor mit Apache?
Meine Idee ist Apache, um die statischen Dateien möglicherweise in einem anderen Server hosten. Ich setze COMPRESS_OFFLINE = True
auf die Datei .
Dann mache ich die folgenden
python manage.py compress
- Dieses füllt dasCACHE
Verzeichnis in meinemstatic
Verzeichnis, in dem alle statischen Dateien gesammelt werden.- - Dies sammelt statische Dateien von allen Anwendungen in meinem Projekt (von denen einige keinen Kompressor verwenden) in meinem Verzeichnis
static
. - Kopieren Sie das Verzeichnis
static
irgendwo mit Apache gehostet werden. Und richten Sie Apache ein, um die Dateien zu bedienen. - Ändern Sie die
static_url
Variable in der Datei, um auf den statischen Server zu verweisen.
Wenn ich eine Seite zu öffnen, ich folgende Fehlermeldung auf meinem Server zu bekommen, scheint dies nur zu geschehen, wenn ich DEBUG = False
und COMPRESS_OFFLINE = True
auf meine settings.py
Datei:
TemplateSyntaxError: Caught OfflineGenerationError while rendering: You have offline compression enabled but key "777ba26736d046ab043dc151e7e9a060" is missing from offline manifest. You may need to run "python manage.py compress".
Wenn ich überprüfen Sie die static/CACHE
Verzeichnis bestätige ich, was der Fehler sagt, das ist meine manifest.json
Datei:
{
"6189b8598993d1cbdbd35d4dfd1a6711": "<script type=\"text/javascript\" src=\"http://192.168.1.123/CACHE/js/2f6ca6616bd6.js\"></script>",
"5c66dbed0e5b766c6e32773cd8585f3c": "<link rel=\"stylesheet\" href=\"http://192.168.1.123/CACHE/css/154d95903951.css\" type=\"text/css\" />"
}
Wenn ich das Cache-Verzeichnis löschen und erneut ausführen 012.343., ich erhalte einen neuen Satz von IDs sowohl für die Fehlermeldung als auch für die Manifestdatei, aber die ID des Fehlers fehlt noch im Manifest.
Also, ich denke, es gibt zwei Fragen hier. Warum funktioniert es nicht? Was ist der richtige Weg, um dies zu erreichen?
Danke.
Haben Sie Kompressor-Finder in 'STATICFILES_FINDERS' in den Einstellungen? – ilvar
Bitte zeigen Sie Ihren Template-Code an, wo Sie das '{% compress%}' - Tag verwenden, das beim Debuggen des 'TemplateSyntaxError' helfen würde :) – vdboor