我已经将文件上传到S3,并且可以使用Wagtail / django应用程序正常工作(静态和上传)。现在,我尝试使用ManifestStaticFilesStorage
启用缓存清除。该应用程序正确生成了这些url,并将带有哈希值的文件复制到S3。
但是,每次我运行collectstatic
时,都会将某些文件复制两次到S3中-每个都有不同的哈希值。到目前为止,所有CSS文件都存在该问题。
file.a.css
由应用程序加载,并且是staticfiles.json
中引用的文件-但是,它是S3中的20.0B文件(应为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:
将所有部门更新到最新版本-与上述行为相同。