美文网首页前端面试题目及答案整理
很多静态文件会不断修改,如何保证浏览器总是加载到修改后的版本?

很多静态文件会不断修改,如何保证浏览器总是加载到修改后的版本?

作者: Xindot | 来源:发表于2018-03-19 14:14 被阅读13次

    一种方法是使用HTTP头消息,指定浏览器不得缓存(或者指定一个较短的缓存时间)。
    Cache-Control: no-cache, no-store, must-revalidate
    Pragma: no-cache
    Expires: 0
    但是,这样一来,浏览器每次访问都要下载相关文件,会增加宽带消耗,也不利于性能。
    更常见的解决方法是,为每个静态文件的URL附加一个版本号或哈希作为查询字符串。文件每次更新,就更新一个版本号。
    <link rel="stylesheet" href="a.css?v=1.0.1"/>
    但是这种方法对于多个静态文件相互依赖的页面会产生问题。
    因为HTML页面和静态资源文件往往不会同步部署上线。一旦新版的静态资源文件先上线,同时此时又有用户去加载老版本的HTML页面,就可能导致问题。
    因此,更好的解决方法是。每当静态资源文件有内容变化,就改用一个全新的文件名。
    <link rel="stylesheet" href="a.v1.0.1.css"/>
    这样就会使得HTML页面和静态资源的版本总是匹配的,再配上灰度发布,就能实现平滑发布。

    相关文章

      网友评论

        本文标题:很多静态文件会不断修改,如何保证浏览器总是加载到修改后的版本?

        本文链接:https://www.haomeiwen.com/subject/ryfpqftx.html