2

有一个快速的问题。

假设我创建了 file stylesheet.css。在这个文件中:

body {
    background: #000000;
}

现在假设我更改了背景颜色,使此文件版本为 1.0:

body {
    background: #FFFFFF;
}

我会更改样式表的链接以包含 ?v=1.0 吗?这会迫使浏览器重新加载样式表并使用新的更改,以便不缓存旧设置吗?另外,假设前面的所有内容都是正确的,那么根据版本提交更改是否是一种好习惯?因此,就像我在样式表中进行更改并将它们配音足够严重以保证 av2.0一样,然后将样式表提交为“v2.0”?谢谢!

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

3 回答 3

3

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

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

于 2012-08-27T17:51:26.410 回答
2

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

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

答案说:

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

网络服务器将忽略该参数并正常服务 /Content/all.min.css

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

于 2012-08-27T17:54:27.147 回答
0

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

如果您不附加查询字符串,那么用户将根据您的 Web 应用程序上配置的缓存设置更新他们的样式表,这可能会因配置方式/您使用的框架而有很大差异。

于 2012-08-27T17:51:35.170 回答