加MD5戳简单,关键是我们需要弄明白为什么要加上它。
想一下新版本上线时候我们是怎么做的,替换文件是不是,记得我们之前做的优化吗,CDN、浏览器缓存Etag标签等等。所以问题就来了,如何让新版本上线时,这些缓存也随之失效,同时也不能因为一时的更新影响牺牲缓存的效果。
既然两个问题有矛盾,不如转变思路,我们不改变缓存策略,反而我还要更强的缓存,只要每次更新都给相应的文件换一个名字,所以就有了我们在文件名后加MD5戳的方法了。而且加上MD5之后,我们更新就不再是替换文件了,所以我们能先上JS、CSS再上HTML,这样就避免了HTML更新了CDN还没更新而产生的间隔。
当然你可能还会问为什么不能加时间戳,因为有时候我们改了文件的注释或者加个空格,压缩之后的文件并不会改变,所以还是MD5更为靠谱些。
使用Gulp加MD5戳
gulp-rev
对文件名加MD5后缀
gulp-rev-collector
路径替换
拓展阅读 1.为什么推荐MD5不推荐时间戳?