我有一个在服务器上经常更新的 javascript 文件(每小时)。它是网站用户在网站中使用的插件。每天提供数百万次。
为了让用户获得最新的副本,我使用了一个标题:
cache-control: public,max-age=1800,stale-while-revalidate=3600, immutable
(Safari 不支持stale-while-revalidate所以它被忽略)。
更改文件时,所有浏览器都会在一小时内赶上,但 Safari 除外,其中一小部分用户继续使用旧版本的文件(可能是几周前)。似乎它是由返回用户(进入网站的用户,而不是一周后返回的用户)引起的。
尽管设置了 max-age,Safari 是否有任何理由使用旧版本的文件?