我最近向我的站点添加了 HTTP 标头,以通知浏览器在每次遇到给定的 JS/CSS URL 时与服务器进行检查。我已经对其进行了测试,并且效果很好;现在所有浏览器都发出条件GET
请求。
但问题是——人们仍然缓存了旧的标头;标题或多或少告诉浏览器“永远缓存这个;不要费心要求更新!”。这可以通过硬刷新来解决。在我们推出代码后,我不想与每个人交流,请在任何错误页面上按 F5。
是否有任何 HTTP 标头/HTML 元标记我可以放在 HTML 文档本身上说“浏览器,忽略 JS/CSS 文件上的标头并下载所有包含文件的最新版本这一页”?
随着越来越多的人清除缓存或学会自己刷新,这个问题最终会自行解决。但是,我宁愿现在修复它。然后在一个月左右的时间里,我将删除 HTML 级别的标头,以便在我想要的地方进行缓存——基于每个资源。
编辑:我不想重命名资源或添加查询参数。这就是我们过去使用的(?v=18、?v=19 等),每次更新资源时增加这个数字是一件苦差事。即使以编程方式进行也不是理想的解决方案。尤其是现在我们的服务器配置正确。在 HTTP 级别上执行此操作更有意义,因此无论您如何访问它,它都可以工作——包括在页面上、直接从地址栏或其他方式。