我在一个网站上遇到了一些相互冲突的jquery问题,当我试图解决这个问题时,我注意到我的head文件中有以下后缀:
ajax.js?ver=3.1.2'></script>
jquery.prettyPhoto.js?ver=3.1.2'></script>
jquery.cycle.all.2.72.js?ver=3.1.2'></script>
jcarousellite_1.0.1.min.js?ver=3.1.2'></script>
jquery.kwicks-1.5.1.pack.js?ver=3.1.2'></script>
ddsmoothmenu.js?ver=3.1.2'></script>
js.js?ver=3.1.2'></script> 显然,3.1.2可能是某种“最新更新”之类的东西。它怎麽工作?你如何同步主题或平衡它们?
这些其他文件会因为混合版本而失败吗?下面是剩下的部分:
.css?ver=20110325' type='text/css' media='all' />
.css?ver=3.1.2' type='text/css' media='all' />
l10n.js?ver=20101110'></script>
jquery.js?ver=1.4.2'></script>
all.js?ver=3.1.2#xfbml=1'></script>
comment-reply.js?ver=20090102'></script> 我不确定这是不是我应该在Stackoverflow上发布的方式,所以请随意编辑。
发布于 2011-08-31 15:58:55
这个想法是给js文件提供远未来的expires报头,因此浏览器被指示不再下载该文件。
为了允许更改文件,同时仍然对它们进行缓存,通常会添加此缓存破坏查询字符串,以便您可以更改版本位,并且浏览器会将其视为新文件。
它实际上不会在服务器端做任何事情,这只是一种很好的方式。
这实际上是一种非常糟糕的方式,因为一些代理服务器不缓存带有查询字符串的内容,所以更好的方法是在文件名中嵌入一些东西,而不是查询字符串。
发布于 2011-08-31 16:01:12
3.1.2似乎是您正在使用的应用程序的版本,而不是js/css库本身的版本。这样做的一个原因是,当您更新代码时,不必担心浏览器使用较旧的缓存版本。
https://stackoverflow.com/questions/7254091
复制相似问题