DjangStorages未检测更改的静态文件

2024-04-24 01:26:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用django存储和amazons3作为静态文件。按照文档,我将这些设置放在设置.py在

STATIC_URL = 'https://mybucket.s3.amazonaws.com/'

ADMIN_MEDIA_PREFIX = 'https://mybucket.s3.amazonaws.com/admin/'

INSTALLED_APPS += (
    'storages',
)

DEFAULT_FILE_STORAGE = 'storages.backends.s3boto.S3BotoStorage'
AWS_ACCESS_KEY_ID = 'mybucket_key_id'
AWS_SECRET_ACCESS_KEY = 'mybucket_access_key'
AWS_STORAGE_BUCKET_NAME = 'mybucket'
STATICFILES_STORAGE = 'storages.backends.s3boto.S3BotoStorage'

我第一次运行collect static时,一切都正常,我的静态文件被上传到了s3存储桶中。在

但是,在对静态文件进行更改并运行python manage.py collectstatic之后,尽管静态文件已被修改,但仍会输出此文件

^{pr2}$

但是,如果重命名更改后的静态文件,更改后的静态文件将正确地复制到s3存储桶中。在

为什么django storages不上传我更改的静态文件?是否存在配置问题或问题更深?在


Tags: 文件djangopyhttpscomawss3静态
3条回答

使用以下配置创建一个设置文件,用于collectstatic同步:

TIME_ZONE = 'UTC'

使用以下行的特定设置运行collectstatic:

^{pr2}$

如果“目标”文件比源文件“年轻”,collectstatic将跳过文件。看起来amazon S3存储返回了错误的文件日期。在

您可以调查[code][1]并调试服务器响应。也许时区有问题。在

或者您可以将--clear参数传递给collectstatic,这样在收集之前,S3上的所有文件都会被删除

https://github.com/antonagestam/collectfast

从自述文件.txt:自定义管理命令,用于比较来自S3的MD5 sum和etag,如果两者相同,则跳过文件复制。这使得运行collect static要快得多 如果您使用git作为更新时间戳的源代码控制系统。在

相关问题 更多 >