首页 > 代码库 > angular,require ,oclazyload项目如何加入版本控制

angular,require ,oclazyload项目如何加入版本控制

具体github项目地址

一个项目从上线了以后再维护,客户端由于有缓存报错了,这是了尴尬的时刻,因为他们不懂怎么清理缓存,这时候就要进行访问的时候就要进行强制刷新了,

例如引入的css文件为

<link rel="stylesheet" href="http://www.mamicode.com/style.css">

这样在服务端更新加入代码了,如何使客户端强制刷新

简单粗暴的是直接改css名字,显然这是不科学的,改到自己都词穷。

这时候我们可以用版本就行控制

<link rel="stylesheet" href="http://www.mamicode.com/style.css?v=1-0-0">

这样可以强制刷新了

注意你的css名字还是叫style.css只是你引入的时候加了?v=1-0-0

当你下次再稍微该这个文件时,你的 可能就是?v=1-0-1

 

grunt中有加入版本控制的方法,可以进行研究,后续我也会进行学习,到时候把只是分享到这里

 

言归正传,require.js怎么加入版本号

把reuirejs下面的代码

return config.urlArgs && !/^blob\:/.test(url) ?                   url + config.urlArgs(moduleName, url) : url;

替换为

if (!config.urlArgs) {    return url;}if (typeof config.urlArgs === ‘string‘) {    return url + ((url.indexOf(‘?‘) === -1 ? ‘?‘ : ‘&‘) + config.urlArgs);}//handle the urlArgs with a function//give each file it‘s own urlArgsif (isFunction(config.urlArgs)) {    var urlArgs;    try {        urlArgs = config.urlArgs.call(config, moduleName, url);    } catch (e) {        urlArgs = "";    }    return url + ((url.indexOf(‘?‘) === -1 ? ‘?‘ : ‘&‘) + urlArgs);}

https://github.com/xingkongwuyu/zhihu/blob/master/js/lib/require.js  可以参考这个

配置怎么配置呢?这样

<script type="text/javascript" src="http://www.mamicode.com/require.js" data-main="main"></script>

require.config({    //你的配置+     urlArgs:‘v=1-9-2‘})

 

angular,require ,oclazyload项目如何加入版本控制