如下,页面中有一张图片,第一次访问该页面时,服务器将该图片的max-age置为10年。
不幸的是,第二天设计师修改了图片,那么问题来了。
由于用户的浏览器在第一次请求该图片的时候,强缓存了这张图片,也就是说在10年内,用户的浏览器并不会和服务器请求更新该图片,而是直接从浏览器缓存中读取,也就导致了用户的浏览器无法看到最新后的图片。
现在需要让浏览器自动更新(用户主动更新不算)
-
维护静态资源的hash(感觉这是单页应用的解决方案,传统多页不适用啊,比如jsp页面) - 时间戳,在每个静态资源后面加个后台的时间变量,跟hash差不多,应该需要配套的发布系统吧?
大家有什么好的解决方案吗?或者贵公司是怎么做的(传统多页网站)
没有前端构建的时候,人肉版本号。
这种做法的缺点是,前端替换来图片,很容易就忘记改 img 的 src 引用。
构建工具并不只有 webpack 这种面向 SPA 的,前端发布的时候,gulp 工具处理一下 jsp 替换 js css 和 图片的引用,完全可以实现。
所以,用构建工具自动处理 hash 就是现在的正道啊
不过。。。