在网址上添加?v = 1

Ell*_*t C 0 javascript css url

http://html5boilerplate.com/中的代码所示(ctrl + f"?v = 1")是什么?v = 1完全正确吗?它被添加到外部css和js urls.

Nic*_*ver 5

它只是一个缓存中断的方法,例如:

myScript.js?v=1
Run Code Online (Sandbox Code Playgroud)

我可以(通过缓存标题)告诉你永远缓存它,然后当我推新版本时,它是:

myScript.js?v=2
Run Code Online (Sandbox Code Playgroud)

并且您的浏览器将其视为一个新文件,可以永久缓存,因此基本上您可以获得最大缓存优势,并且仍然强制客户端在新版本出现时重新获取.如果可能的话,这个版本将是一个构建过程的结果,当文件发生变化时自动更新(或者至少是一个新的构建,推送,无论情况如何).


作为一个真实的工作示例,请查看您正在查看的页面:

http://sstatic.net/js/master.js?v=66ffcb6dcc55
Run Code Online (Sandbox Code Playgroud)

它是文件的哈希值...每当它发生变化时,URL末尾的哈希值也会变化,你的浏览器将获取一个新副本.