文件名中的CSS版本



有一个快速问题。

假设我创建了文件stylesheet.css。在此文件中:

body {
    background: #000000;
}

现在让我们假设我改变背景颜色,使这个文件版本1.0:

body {
    background: #FFFFFF;
}

我会把样式表的链接改为include吗?v=1.0?这会迫使浏览器使用新的更改重新加载样式表,这样就不会缓存旧的设置吗?此外,假设前面的内容都是正确的,那么根据版本提交更改是否是一种好的做法?所以,就像我对样式表进行更改,并将其称为足够严重的内容以保证v2.0一样,然后将样式表提交为"v2.0"?谢谢

<link rel="stylesheet" href="stylesheet.css?v=1.0">

如果URL(包括查询字符串)不在浏览器的缓存中,则会请求一个新文件。

是的,这是强制版本控制的有效方法。

这确实迫使所有浏览器完全重新加载CSS,如下所述:

什么是'';在Css链接中做什么?

答案是:

这是为了给文件名添加一些唯一性,这样当他们更改CSS文件,他们可以将额外的位更改为确保每个客户端都将重新加载CSS,而不是使用缓存的版本

Web服务器将忽略该参数并提供/Content/all.min.css正常

顺便说一下,StackOverflow使用了这种技术。

如果将链接更改为?v=1.0,那么您将覆盖服务器设置的任何缓存机制,浏览器将看到样式表的新url,并重新下载您的新更改,确保用户立即看到新更改。

如果不附加查询字符串,则用户将根据web应用程序上配置的缓存设置更新其样式表,缓存设置可能会因配置方式/使用的框架而异。

最新更新