【问题标题】:What does the question mark at then end of a css include url do?css include url末尾的问号有什么作用?
【发布时间】:2011-02-07 17:07:15
【问题描述】:

我注意到在某些网站(包括 SO)上,指向 CSS 的链接如下所示:

<link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6638"> 

我会说假设?v=6638 告诉浏览器加载css 文件的6638 版本是安全的。但是我可以在我的网站上执行此操作吗?我可以仅通过更改数字来包含不同版本的 CSS 文件吗?

【问题讨论】:

标签: html css http caching


【解决方案1】:

这会使用不同的查询字符串加载all.css,因此如果版本 6637 已经缓存在您的计算机上,您将获得新的 (6638)。更改该数字(在这种情况下)不会为您提供不同的文件。

这只是一个缓存技巧,因此他们可以在没有过期的情况下发送文件(即您永远不必再次要求它),因为当它确实更改时,“文件名”,变化。


也就是说,您可以制作它,以便根据查询字符串参数加载不同的版本。这样做会有点不重要,并且类似于当您将不同的问题 ID 传递到此页面的 URL 时获得不同问题的方式。

【讨论】:

  • 那么浏览器是否只是将上次访问时的数字保存下来,如果下次不匹配,则重新加载CSS文件,否则只使用缓存的?跨度>
  • 是的,或多或少。这里的问题是文件被发送了额外的数据(标题),上面写着“永远不要再请求这个文件 - 它永远不会改变”。由于他们这样做,因此站点速度更快(每次加载请求少一个)。但是当文件确实发生变化时,他们会通过更改名称来传达这一点。
  • 尽量忽略版本号是一个查询字符串参数——考虑整个事情——路径、名称、查询字符串——作为文件名的一部分。当其中任何一个发生变化时,它都会被视为一个完全独特的“文件”或资源。
  • 谢谢!您的问题的编辑也很棒,感谢您的澄清。
猜你喜欢
  • 2013-08-21
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 2017-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多