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!
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:
Und das in der Datei myapp.s3utils.py
:
Aber ich konnte Djangos Cache-Busting nicht benutzen.
Die Lösung war, meine myapp.s3utils.py
-Datei zu ändern:
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.