我们最近开始使用svn关键字自动将当前修订号附加到
<script src="...">
包括(因此看起来如下:
<script language="javascript" src="some/javascript.js?v=$Revision: 1234 $"> </script>
)。这样,每次我们将代码的新副本推送到生产环境中时,用户缓存都不会导致用户仍然使用旧的脚本修订。
它工作得很好,除了IE6。出于某种原因,IE6偶尔会充当一些文件不存在的角色。我们可能会得到一些奇怪的错误语句,比如“第1234行未终止的字符串文字”,但是如果您尝试将调试程序进程附加到它,它不会在这行停止(如果您对调试程序提示说“是”,则不会发生任何事情,页面执行将继续)。它的日志条目显示在IIS日志中,表明用户确实正在接收该文件(状态代码200,并传输适当数量的字节)。
它似乎只在通过HTTPS而不是通过标准HTTP服务页面时发生。如果要进一步进行复合,则不一定总是会发生这种情况;您可能会刷新一个页面5次,所有内容都可以工作,然后您可能会再刷新20次,每次都会失败。对于大多数用户来说,它似乎总是有效的,否则总是失败。当您在一个安全性和缓存设置强制相同的企业环境中有多个用户时,这甚至是不可预测的。
任何想法或建议
大大地
很感激,这让我疯狂了好几个星期。