常用方法:
1、文件头部声明,不缓存文件
response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
2、动态生成引入,文件后加时间或者版本号。
document.writeln('<script src="'+node[i].url+'?version='+node[i].version+'"><\/script>')
3、静态引入,文件后加时间或者版本号。
<script type="text/javascript" src="<%=baseURL%>/xhd_js/select-ajax.js?2.0"></script>
静态版本号方案比较好,不会反复加载,而且又能及时更新
可以采用grunt处理版本号的替换。推荐使用 grunt-chache-breaker.配置如下,目前只支持单个html文件内的替换。
cachebreaker: {
dev: {
options: {
match: [
{'conf.js':'js/conf.js',
'common.js':'js/common.js'
}],
replacement: 'md5'
},
files: {
src: ['test.html']
}
}
}
参考:
https://github.com/PaulTondeur/grunt-cache-busting
https://www.npmjs.com/package/grunt-cache-breaker
http://stackoverflow.com/questions/20437620/dynamically-add-version-number-to-dest-output-files-w-grunt