我有一个版本化的缓存 list :
#version = e5b4271
每次此版本更改时,我的 webapp 都会加载新的 list ,但它从不从服务器加载更新文件。即使当我清除浏览器缓存(不是应用程序缓存本身),或按 Ctrl+Shift+R 强制它获取新版本时,它仍会从旧应用程序缓存加载文件。
我让它更新的唯一方法是在设置中清除浏览器的应用程序缓存,但显然这是 Not Acceptable ,因为我需要它为普通用户更新。
知道为什么会发生这种情况吗?
最佳答案
刚刚想通了。我正在使用 Flask 的开发服务器,它似乎默认情况下(通过 werkzeug)它为静态文件发送缓存 header 12 小时。将以下内容添加到我的 flask 配置中解决了这个问题:
SEND_FILE_MAX_AGE_DEFAULT = -1
如果其他人遇到此问题,请检查您的服务器配置以确保缓存 header 未与静态文件一起发送。您可以在首次加载文件时在 chrome 的网络选项卡中检查此项。
关于HTML5 应用程序缓存 - 缓存的文件不会更新,即使 list 已更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12980792/