gpt4 book ai didi

Django 管道缓存破坏不更新缓存文件/哈希

转载 作者:行者123 更新时间:2023-12-03 10:43:51 25 4
gpt4 key购买 nike

基本上,缓存破坏文件上的哈希不会更新。

class S3PipelineStorage(PipelineMixin, CachedFilesMixin, S3BotoStorage):
pass

PIPELINE_JS = {
'main.js': {
'output_filename': 'js/main.min.js',
'source_filenames': [
'js/external/underscore.js',
'js/external/backbone-1.0.0.js',
'js/external/bootstrap-2.2.0.min.js',
]
}
}

当我第一次运行 collectstatic命令,它正确地创建了一个名为“ main.min.d25bdd71759d.js”的缓存破坏文件。

但是,现在当我运行该命令时,它无法在后期处理阶段覆盖该缓存文件(并更新哈希)。

它不断更新“ main.min.js”,使得 main.min.js我的文件系统是最新的。但是,不会创建新的缓存文件。即使底层 main.min.j 也保持相同的旧哈希值s 文件已更改。

当我手动删除 AWS 上的缓存文件时,我通过运行 collectstatic 收到以下消息详细程度设置为 3:
Post-processed 'js/main.min.js' as 'js/main.min.d25bdd71759d.js
settings.DEBUG设置为 False
为什么哈希不会更新?

最佳答案

尝试改用 list 存储:

class S3PipelineManifestStorage(PipelineMixin, ManifestFilesMixin, S3BotoStorage):
pass

根据此处的 Django 文档 https://docs.djangoproject.com/en/1.11/ref/contrib/staticfiles/#cachedstaticfilesstorage不推荐使用 CachedStaticFilesStorage .

您的静态文件的文件名可能会被缓存。所以使用 list 一。

CachedStaticFilesStorage isn’t recommended – in almost all cases ManifestStaticFilesStorage is a better choice. There are several performance penalties when using CachedStaticFilesStorage since a cache miss requires hashing files at runtime. Remote file storage require several round-trips to hash a file on a cache miss, as several file accesses are required to ensure that the file hash is correct in the case of nested file paths.



请注意,这也记录在 django-pipelines http://django-pipeline.readthedocs.io/en/latest/storages.html#using-with-other-storages

关于Django 管道缓存破坏不更新缓存文件/哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17930633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com