我们最近开始使用SVN关键字自动将当前版本号附加到我们的所有<script src="...">
包含中(因此它看起来像这样:<script language="javascript" src="some/javascript.js?v=$Revision: 1234 $"> </script>
)。这样,每次我们将新的代码副本推送到生产环境时,用户缓存都不会导致用户仍然使用旧的脚本修订。
除IE6外,它的效果很好。出于某种原因,IE6偶尔会表现为某些文件不存在。我们可能会得到奇怪的错误语句,如“1234行上的未终止字符串文字”,但如果您尝试将调试程序进程附加到它,它将不会在此行上停止(如果您对调试器提示符说“是”,则没有任何反应,并继续执行页面)。它的日志条目显示在IIS日志中,表明用户肯定正在接收该文件(状态代码200,传输了适当的字节数)。
当页面通过https而不是标准http提供时,似乎也会发生这种情况。为了进一步复合,它不一定总是发生;你可以刷新一个页面5次,一切正常,然后你可以刷新它20次,每次都失败。对于大多数用户来说,它似乎始终有效,或者总是失败。如果企业环境中的多个用户的安全性和缓存设置强制相同,则甚至无法预测。
任何想法或建议都会被非常赞赏,这让我疯狂了好几个星期。
答案 0 :(得分:1)
答案 1 :(得分:0)
我认为这是一个非常聪明的主意。但是,我认为这个问题可能与网址中的空格有关。从技术上讲,url应该有空格编码。
查看您是否可以自定义SVN中的关键字以生成没有特殊字符的修订号。