js怎么加版本号|如何自动给CSS、JS添加版本号防止客户端缓存

㈠ 在引用js文件timestamp作用是什么

为了避免缓存引起的最新js无法加载,所以需要用timestamp来表示。1、在<script type="text/javascript" src="/js/common.js" ></script>在后面加一个时间戳来解决。这版样url地址每次变化,浏览器就会请求服务端的js,而不会使用缓存。保证页面每次加载到的都是最新的js文件。2、还有一种解决方案:加版本号,js有个版本。如果每次发布新的js代码。后面就会附加新的版本号。然后用户加载html页面的时候。版本号附加在在权<script type="text/javascript" src="/js/common.js?v=99" ></script>这样也可以保证js同步加载到最新的版本。

㈡ 在js中或css中加入v=版本号

添加版本号的原因,可能是因为想要强制浏览器不缓存js和css。1、推荐自动化构工具, webpack之类的,每次写完编译文件,自动生成不同的版本的js,css,当然也有小插件可以做到。2、就是在?v=时间戳,可以把加载js脚本,统一放在一个js里面 ,声明时间戳。

㈢ 使用requirejs时怎么解决文件版号和增量更新的问题

看你前后端用什么技术了,我知道的大概有3种情况。 在这三种情况之前,首先要说的是requirejs对依赖增加hash的方式是通过参数urlArgs: 'ver='v{version}在require.config统一增加的,就我所知似乎不能单独对每个模块设置 (但可能是我错了),即每次都得批量更新版本号。1.如果你采用过requirejs,且前后端分离,前端采用yeoman构建,那么只要找到相应的质量高的requirejs的generator,无论是gulp还是grunt, 其yeoman的generator应该已经处理好文件缓存增量更新的问题了。 2.假使前后端分离,前端由gulp/grunt集成,文件版本号增量更新,用下面几个插件就能处理的比较完美: gulp-rev gulp-rev-all gulp-useref (grunt也能找到类似的) 其中gulp-rev,计算文件hash值,gulp-useref对html内特定注解标签下的内容合并重写,gulp-rev-all会考虑css引用图片hash值改变的情况从而更新css文件hash。 等等总之只要去找总能通过gulp/grunt解决这个问题。 3.如果你使用rails(ruby)等前端友好框架,可能会有流行的解决方案,如果不幸用了老旧前端不友好的框架SpringMVC(java),用gulp对jsp重编译比较蛋疼。。我不知道有没有相应的插件,如果没有你只能在后台维持这个版本号变量,对页面所有静态资源添加这个后缀,类似下面的代码:var require = {baseUrl: '/Content',urlArgs: 'ver='+${static_resource_version},paths: {…},deps: ['scripts/home/about']}<script src="/Content/bower_components/requirejs/require.js?ver=${static_resource_version}" async></script>其中path之内的所有脚本,以及deps内的入口脚本,都会被追加urlArgs,只是这样还无法达到最理想增量更新就是了。。。 此外,对于文件版本号的后缀args我也推荐使用git commit的hash值。

㈣ 如何自动给CSS、JS添加版本号防止客户端缓存。

怎么说呢,个人有个笨点的办法,就是在代码中加上JS版本号的全局变量,应用内JS时利用后台代码添加。容这样更改过JS时,将JS的文件名后边带上个自定义的版本号,再将JS版本号的变量修改一下就好了。其他程序由于是动态的读取JS文件名,所以不用再修改,也不用怕漏改。

㈤ html中js文件的版本号如何控制

处理办法:1.更改css文件名:其实解决这个问题很简单,缓存是通过文件名标记缓存的内容的。在你更新了网站的css文件内容后,在更换一下css的文件名就可以了。如原先html中的css调用语句如下:<link rel="stylesheet" href=“http://www.example.com/style.css” type="text/css" media="screen" />改一下css文件名就可以了:<link rel=“stylesheet” href="http://www.example.com/index.css" type="text/css" media="screen" />另外一种从更改css文件名的方法是将版本号写到文件名中,如:<link rel="stylesheet" href="http://www.example.com/index.v2011.css" type="text/css" media="screen"/>css文件更新后,改一下文件名中的版本号即可:<link rel="stylesheet" href="http://www.example.com/index.v2012.css" type="text/css" media="screen"/>2.给css文件加个版本号:其实每次修改css文件后还要修改css的文件名有点麻烦,那么我们可以在加载css语句中加入个版本号(即css链接中?后面的内容)就可以了。如原先html中的css调用语句如下:<link rel="stylesheet" href=“http://www.example.com/style.css?v=2011”type="text/css" media="screen"/>改一下css文件的版本号改成2012就可以了:<link rel="stylesheet" href=“http://www.example.com/style.css?v=2012”type="text/css" media="screen"/>总结:其实css文件后面的问号起不到实际作用,仅能当作后缀,如果用问号加参数的方法,可以添加版本号等信息,同时可以刷新一下浏览器端的缓存。一个小小的细节,带来很大的方便。

㈥ js 后跟version 后台怎么控制version

给js加版本号,是一种很畸形的设计。说实话,html版本的变化才是关键。js的修改其实对应的html要做新版本才对。如果非要有,可以考虑设置一个全局的常量,记录服务启动的时间值:public final static SYSTEM_STARUP_TIME = System.currentTimeMillis();界面直接使用:<script type="text/javascript" src="/js/2011/oschina.js?<%=SYSTEM_STARUP_TIME %>"></script>这样,你要控制版本,只要把你的程序重启一下,世界从此清静了。

㈦ 【浏览器缓存问题】HTML静态文件中,css和js可以添加版本号来刷新缓存,但是只是修改的文字了呢

给网址后面添加一个随机数(或者是任意的字符串)即可,比如原来的网址是这样的回:http……/…/1.htm改为http……/…/1.htm?1234即可(注意问号不答能省)。浏览器是根据网址来缓存的,所以只要给网址接个尾巴,浏览器就会认为是新网址,就会从网上重新下载数据了。当然,如果下次再次改变了网页内容,这个尾巴就要再次修改。给css和js添加所谓版本号其实也是同一个原理。这个版本号其实就是给css和js的网址接个尾巴而已。这个也同样适用网页里面的图片、音乐等资源,事实上只要是http协议的元素都可以利用这个办法来避开缓存实时刷新。


赞 (0)