前端资源的版本控制

在前端项目中,我们为了让用户的浏览器获取到最新的文件,而且在获取未修改的文件时,能使用浏览器的缓存(故排除设置http头的方法),我所知的有两种方法:

1、在更改的资源url后面加上查询参数:

2、更改资源名称:

//一般在后缀前加md5 hash

表面上看,第一种方法更加简便,因为第二种还要改文件名。。

然而,第二种可能更科学:
1、使用第一种方法的话,上线时如果index.html 比 common.js先传输完毕,然后此刻有用户访问网站,而 common.js还没传输完毕,会导致引用文件不对而出现不可预知的错误;
2、同样道理,上线时如果 common.js 比 index.html 先传输完毕,则出现旧index.html 配新 common.js;
3、使用cdn时也会出现类似的问题;
4、使用第二种的话,不会出现上面的问题(先上传js、css等,再上传index.html),而且可以实现永久缓存,每个版本的文件可以共存,需要回退时,只需回退index.html即可;

所以,如果可以的话,建议使用文件名加MD5 hash后缀的方法管理版本

你可能感兴趣的:(前端资源的版本控制)