我在网站上遇到了一些有冲突的jquery问题,当我试图解决这个问题时,我注意到我的头文件中有以下后缀:
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上发布,所以请随意编辑。
答案 0 :(得分:4)
我们的想法是,js文件将在未来的expires标题中提供,因此指示浏览器不再下载该文件。
要允许更改文件,同时仍然缓存它们,通常会添加此缓存清除查询字符串,以便您可以更改ver位并且浏览器认为它是新文件。
它实际上并没有对服务器端做任何事情,这只是一种巧妙的方式。
这实际上是一种非常糟糕的方式,因为一些代理服务器不会使用查询字符串缓存内容,因此更好的方法是将某些内容嵌入到文件名中,而不是查询字符串。
答案 1 :(得分:1)
3.1.2
似乎是您正在处理的应用程序的版本,而不是js / css库本身的版本。做这样的事情的一个原因是,当您更新代码时,您不必担心浏览器使用较旧的缓存版本。