为啥要在图像和 css 文件之后查询字符串?
Posted
技术标签:
【中文标题】为啥要在图像和 css 文件之后查询字符串?【英文标题】:Why querystrings after images & css files?为什么要在图像和 css 文件之后查询字符串? 【发布时间】:2012-07-09 00:31:52 【问题描述】:我在各种网站上看到了一个查询字符串,后跟一个数字,用于图像和 css 文件。当我查看源代码(通过 Chrome 开发人员)时,缓存的 css 文件和图像的名称中没有查询字符串中的数字。我还在网站上看到刷新页面时查询字符串中的数字会发生变化。
例如:
myimage.jpg?num=12345
myStyles.css?num=82943
刷新后:
myimage.jpg?num=67948
myStyles.css?num=62972
谁能向我解释这些没有跟踪的查询字符串的目的可能是什么?
【问题讨论】:
更改数字以防止缓存,因为它总是看起来像一个不同的文件。 What does '?' do in a Css link?的可能重复 【参考方案1】:查询字符串用于版本控制,它强制导航器重新加载 css 和图像,而不是使用缓存
【讨论】:
【参考方案2】:-
防止缓存(查询字符串可以在每次文件更新时提供唯一的 URL,从而导致浏览器下载新副本,而不是从缓存中加载过时的副本)
版本控制(类似于 #1,但目的更具体)
【讨论】:
【参考方案3】:开发人员经常使用带有随机数(或版本号)的查询字符串来强制浏览器请求新副本并避免缓存这些文件,因为每次请求都不同。
所以如果你有一个文件/image.png
,但它是一个生成的图像,比如验证码或其他东西,你可以在它后面加上一个随机数查询字符串/image.png?399532
,然后浏览器不会从其拉取image.png
缓存,而是从服务器下载新副本。
【讨论】:
以上是关于为啥要在图像和 css 文件之后查询字符串?的主要内容,如果未能解决你的问题,请参考以下文章