Django 1.8 Cache-Zerschlagung + Amazon S3

8

Ich habe etwas recherchiert, und ich habe Artikel gefunden, die erklären, wie man Djangos (1.8) Cache-Busting benutzt, aber sie erklären meine Situation nicht.

Ich verwende S3 (und es funktioniert) mit der folgenden Einstellung in settings.py:

%Vor%

Um Cache-Busting zu verwenden, sagen die Dokumente , dass ich Folgendes einstellen muss: STATICFILES_STORAGE='django.contrib.staticfiles.storage.ManifestStaticFilesStorage'

Ich weiß nicht, welche Einstellung verwendet werden soll, um S3 und Cache-Busting zu verwenden.

Danke!

    
JesusAlvSoto 15.02.2016, 11:13
quelle

1 Antwort

9

Also habe ich endlich einen Workaround gefunden.

Um meine Dateien in zwei verschiedenen Ordnern (statisch und uploads) in meinem S3-Bucket hochladen zu können, habe ich dies in meiner settings.py -Datei:

%Vor%

Und das in der Datei myapp.s3utils.py :

%Vor%

Aber ich konnte Djangos Cache-Busting nicht benutzen. Die Lösung war, meine myapp.s3utils.py -Datei zu ändern:

%Vor%

Im Grunde fügt es die ManiFestfilesMixin hinzu, mit der Sie Cache-Busting verwenden können.

Als Nebenbemerkung können Sie sehen, dass ich für die statischen Dateien nur Cache-Busting verwende, aber nicht für die Upload-Dateien. Aus diesem Grund ruft MediaRootS3BotoStorage anstelle der CustomS3Storage die S3BotoStorage -Klasse auf. Ich mache es so, weil die hochgeladenen Dateien nicht auf meinem Server gespeichert sind (die statischen Dateien sind), sie werden direkt im S3-Bucket gespeichert, also wenn ich die collectstatic ausgeführt habe, sind sie nicht auf meinem Server , also muss ich den Hash nicht zu den Namen hinzufügen.

    
JesusAlvSoto 29.04.2016, 09:52
quelle

Tags und Links