3

我不太了解 Google Code 如何处理文件版本控制。我正在构建一个任何人都可以访问的 jQuery 插件。像这样:

<script type="text/javascript" src="http://jquery-old-browser-warning.googlecode.com/files/jquery.browser-warning.js"></script>

此脚本访问同一项目中的其他文件(通过 ajax)。

问题是,当我上传一个新文件时,它似乎没有任何改变。Google 建议新文件应该有新名称。但随后我将不得不更改脚本加载的文件名。但是我也必须更改脚本文件,这会破坏每个人的实现(使用上面的脚本标签)

有没有办法在使用相同的文件名上传时强制更改文件?

PS:如果我直接进入项目页面的文件列表。然后我确实得到了包含更新内容的文件。但正如我所说,不是通过ajax获得它。

4

3 回答 3

3

书中防止缓存的最便宜的技巧是向 GET 参数添加一些随机内容:

www.example.com/resources/resource.js?random=1234567

例如,您可以为此使用当前时间戳。

但是,这会导致所有访问重新获取内容,并且还会使任何客户端缓存机制无效。我只会将其用作最后的手段。如果 Google 对缓存有那么严格,我宁愿开发一个允许轻松重命名文件的工作流程。

我不知道您的工作流程,但也许您可以使用版本化目录?像这样:

www.example.com/50/resources/resource.js
www.example.com/51/resources/resource.js

这将使客户端使用的任何缓存保持不变,但是只要您的终端发生更改,浏览器就会重新加载内容。

于 2010-04-16T13:58:42.737 回答
0

我认为它只是浏览器上的缓存,所以当您从 ajax 请求文件时,只需添加随机参数或版本号。

例如,Stackoverflow 将版本参数添加到静态内容,如

http://sstatic.net/so/all.css?v=6638

于 2010-04-16T13:59:22.213 回答
0

您是在谈论将文件上传到“下载”区域吗?那些应该有不同的文件名,例如它们应该被版本化。如果您正在上传脚本代码,则应由您正在使用的版本控制系统提交,并且绝对应该在各个版本中保持相同的名称。

编辑:您的代码片段没有出现在我的页面上,误解了您的尝试。不要以为每次加载某些客户端页面时,Google 都会对您引用 SVN 存储库感到满意 :)

于 2010-04-16T14:00:11.287 回答