Django:只收集更改的静态文件

标签 django amazon-s3 django-staticfiles django-storage

我正在使用 amazon s3 来存储我所有的静态文件(通过 django-storages),并且做 PUT 比做 GET 花费更多的钱。当我跑 manage.py collectstatic , Django 为我拥有的每个静态文件执行 PUT。有没有办法让它先检查文件是否已经改变,如果没有就不要理会PUT?

最佳答案

看来您需要做的就是安装 python-dateutil:

pip install python-dateutil==1.2

由于此代码,没有此 django-storages 将不会检查日期:
def modified_time(self, name):
  try:
    from dateutil import parser, tz
  except ImportError:
    raise NotImplementedError()
modified_time抛出错误,但 django 继续运行,因为它允许 modified_time未实现的存储子类的方法。我理解他们为什么这样做,因为这个功能并不是严格需要的。也就是说,最好有某种警告说明为什么要上传所有内容。

请注意,我使用的是 python-dateutil 1.2 版。如果您使用最新版本的 dateutil,您将收到 django-storages 错误(即 django-storages 版本 1.1.4)。

关于Django:只收集更改的静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455937/

相关文章:

python-3.x - 如何使用 Python 3 从 S3 获得的 OpenCV 读取图像?

django STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置

python - django南部多次迁移

javascript - 如何在 Django 管理中选择单选按钮时隐藏/显示字段?

python - 我想在 django 社交应用登录后添加自定义字段

Django 从其他模型过滤

amazon-s3 - 从 Lambda 函数生成预签名 S3 URL 时为 "Access key does not exist"

amazon-web-services - 如何使用 AWS SDK for Java V2 从 Amazon S3 存储桶读取文件

Azure 上的 Django 应用程序错误地从 Azure Blob 加载静态文件

python - Django 不加载静态 CSS 文件