代码之家  ›  专栏  ›  技术社区  ›  MightyE

ie6文件名中$revision$的javascript问题

  •  1
  • MightyE  · 技术社区  · 16 年前

    我们最近开始使用svn关键字自动将当前修订号附加到 <script src="..."> 包括(因此看起来如下: <script language="javascript" src="some/javascript.js?v=$Revision: 1234 $"> </script> )。这样,每次我们将代码的新副本推送到生产环境中时,用户缓存都不会导致用户仍然使用旧的脚本修订。

    它工作得很好,除了IE6。出于某种原因,IE6偶尔会充当一些文件不存在的角色。我们可能会得到一些奇怪的错误语句,比如“第1234行未终止的字符串文字”,但是如果您尝试将调试程序进程附加到它,它不会在这行停止(如果您对调试程序提示说“是”,则不会发生任何事情,页面执行将继续)。它的日志条目显示在IIS日志中,表明用户确实正在接收该文件(状态代码200,并传输适当数量的字节)。

    它似乎只在通过HTTPS而不是通过标准HTTP服务页面时发生。如果要进一步进行复合,则不一定总是会发生这种情况;您可能会刷新一个页面5次,所有内容都可以工作,然后您可能会再刷新20次,每次都会失败。对于大多数用户来说,它似乎总是有效的,否则总是失败。当您在一个安全性和缓存设置强制相同的企业环境中有多个用户时,这甚至是不可预测的。

    任何想法或建议 大大地 很感激,这让我疯狂了好几个星期。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Community Mohan Dere    9 年前
    1. 检查您的日志 fiddler2 以确保浏览器请求页面,而不是使用缓存。还要检查JS脚本的URL和返回的头。
    2. 你在使用gzip吗? There has been issues reported with it .
    3. 我建议使用 Internet Explorer Application Compatibility VPC Image .这样,您就可以使用100%的IE6进行测试,而不是那些声称在另一个浏览器中模拟IE6的插件。
        2
  •  0
  •   Jesse Weigert    16 年前

    我认为这是一个非常聪明的主意。但是,我认为这个问题可能与URL中的空格有关。从技术上讲,URL应该对空格进行编码。

    查看是否可以自定义SVN中的关键字以生成不带特殊字符的修订号。