У меня есть загрузка файлов на S3, работающая нормально с моим приложением Wagtail / django (как статическое, так и загрузка).Сейчас я пытаюсь использовать ManifestStaticFilesStorage
для включения очистки кэша.URL-адреса корректно генерируются приложением, а файлы копируются с хэшами в S3.
Но каждый раз, когда я запускаю collectstatic
, некоторые файлы дважды копируются в S3 - каждый со своим хэшем.Пока что проблема возникает для всех CSS-файлов.
file.a.css
загружается приложением и является файлом, на который есть ссылка в staticfiles.json
- однако это файл размером 20.0B в S3 (должен быть 6.3KB).
file.b.css
имеет правильное содержимое в S3 - однако оно НЕ появляется в выходных данных, генерируемых collectstatic
.
# custom_storages.py
from django.conf import settings
from django.contrib.staticfiles.storage import ManifestFilesMixin
from storages.backends.s3boto import S3BotoStorage
class CachedS3Storage(ManifestFilesMixin, S3BotoStorage):
pass
class StaticStorage(CachedS3Storage):
location = settings.STATICFILES_LOCATION
class MediaStorage(S3BotoStorage):
location = settings.MEDIAFILES_LOCATION
file_overwrite = False
Deps:
"boto==2.47.0",
"boto3==1.4.4",
"django-storages==1.5.2"
"Django==2.0.8"
Буду признателен за любые указания, где искать эту проблему!:)
Редактировать:
При более внимательном рассмотрении всех файлов, скопированных на S3, проблема возникает ТОЛЬКО для файлов CSS.
Отключение отправки ресурсов на S3 и записи их в локальную файловую систему работает, как и ожидалось.
Редактировать 2:
Обновлены все deps до последней версии - то же поведение, что и выше.