url重写以重定向到正确的javascript文件版本

时间:2010-02-20 21:14:03

标签: javascript versioning

我最近在Meta上看到一些浏览器即使在读取此表单的脚本URL后也没有刷新缓存

myscript.js?V = 1234

所以要解决这个问题,我正在考虑实施一个解决方案,我也读过但没有给出任何细节。像 myscript-1234.js 这样的东西,并重新路由到实际的正确文件,但我现在有一个疑问。 我应该将该网址重写为 myscript.js 还是 myscript.js?v = 1234 ?我实际上很困惑,它甚至会改变你的重写方式。

1 个答案:

答案 0 :(得分:1)

您的重写不应该重定向到任何其他网址(将由浏览器提取),但应该是您服务器上的“内部”。

我的意思是,当收到“myscript-1234.js”请求时,您的服务器应该提供myscript.js文件的内容;这将永远是最后一个版本。

最后:

  • 对于客户端,每次更新服务器上的文件时都是不同的URL:myscript-1234.jsmyscript-1235.jsmyscript-1236.js,...
    • 这就是为什么浏览器会尝试从服务器重新获取文件的原因:因为它不是同一个名字,所以它不会有缓存中的文件
  • 但是,对于服务器,始终只有一个文件:myscript.js
  • 你正在使用一些“重写”规则,因此在尝试从磁盘读取之前,thr服务器只删除文件名的-XYZ部分。