项目托管在Google Code上。文件是缓存的?

时间:2010-04-16 13:54:51

标签: google-code

我真的不明白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获得它。

3 个答案:

答案 0 :(得分: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

可以保留客户端使用的任何缓存,但无论何时发生更改,浏览器都会重新加载内容。

答案 1 :(得分:0)

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

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

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

答案 2 :(得分:0)

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

修改:您的代码段未显示在我的网页上,误解了您正在尝试的内容。不要以为每次加载某个客户端页面时,Google都会对您引用SVN存储库感到满意:)