2013-02-23 3 views
5

Ich habe Probleme, den Django-Kompressor mit CloudFront zu verwenden. Ich führe den Offline-Befehl compress aus, um meine komprimierten Dateien und die Datei manifest.json zu generieren. Danach starte ich collectstatic, um die komprimierten Dateien in meinen S3-Bucket hochzuladen.Django Compressor - CloudFront und manifest.json

Diese statischen Dateien werden dann serviert von Cloudfront, so etwas wie dies meine Einstellungen aussehen:

STATIC_ROOT = '' 
STATIC_URL = 'http://<my-cloudfront-domain>/somebucket/' 

STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 
DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage' 

COMPRESS_OFFLINE = True 

Das Problem ist, ist Cloudfront eine ältere Version von manifest.json dient, Kompressor eine OfflineGenerationError wirft bedeutet.

Selbst wenn ein Cache-Back-End vorhanden ist, mache ich mir Sorgen, dass meine Manifest-Datei falsch ist, wenn der Cache-Server aus irgendeinem Grund offline ist.

Fehle ich hier etwas, um sicherzustellen, dass ich nicht in den OfflineGenerationError laufe?

+0

Sie eine Lösung gefunden haben. Das gleiche Problem hier. –

+0

Ich habe dieses Problem auch, aber ich verstehe nicht, warum compresse auf die 'manifest.json' über die statische URL zugreifen würde, anstatt den Standard-Dateispeicher zu verwenden; Wenn es Letzteres tun würde, würde direkt auf S3 zugegriffen werden und es würde kein Caching-Problem geben ... unter der Annahme, dass manifest.json vom Client nicht verwendet wird. Ich habe noch nicht gesehen, dass mein Client versucht hat, darauf zuzugreifen. – Bryan

Antwort

0

Im Übrigen funktioniert Amazon CloudFront, Sie müssen Dateien explizit für ungültig erklären, indem Sie "Versionen" der gleichen Datei bereitstellen, oder einfach aufgeben und einen neuen Namen verwenden. Eine vorzeitige Löschung ist teuer und wird in Rechnung gestellt.

Versuchen Sie, Ihre manifest.json von AWS Console hochladen und eine neue Version für die gleiche Datei festlegen. Es würde CloudFront-Endpunkte aktualisieren, ohne die Datei zu löschen.

Quelle: http://aws.amazon.com/en/cloudfront/ (Objekt Versionierung und Cache-Invalidierung Thema)