有没有更好的方法来反映用户端更改的 CSS 代码,而不是告诉他们请清除缓存以查看更新? [复制]

Posted

技术标签:

【中文标题】有没有更好的方法来反映用户端更改的 CSS 代码,而不是告诉他们请清除缓存以查看更新? [复制]【英文标题】:Is there any Better way to reflect the changed CSS code on user end rather than telling them please clear your cache to see the update? [duplicate] 【发布时间】:2021-01-16 00:34:28 【问题描述】:

我有一个网站。当我将某些内容更改为样式表时,效果不会落入用户的浏览器中。然后当他们清除缓存时,新样式表会反映到那时。所以每当我更新我的代码时,有没有更好的方法来反映该更改?

【问题讨论】:

这可以帮助你***.com/questions/1922910/… 将样式表的缓存控制标头设置为 5 分钟:developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control 您使用什么编码语言?如果你使用php,可以根据修改日期filemtime()在CSS文件中添加版本号。 【参考方案1】:

我的首选解决方案是将Cache-Control header 的最大年龄设置为 5 分钟。这样,在您的页面上导航的用户就不必每次都加载样式表,但当他们在一个小时后回来时,它会重新加载。

另一种方法是在每次更改样式表时在样式表 url 末尾增加一个版本号作为 get 参数:

<link href="/styles/home.css?version=1" rel="stylesheet">

当您增加版本号时,浏览器会认为它是不同的资源并重新加载它。

【讨论】:

以上是关于有没有更好的方法来反映用户端更改的 CSS 代码,而不是告诉他们请清除缓存以查看更新? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的代码更改没有立即反映?

Eclipse 更改未反映在输出中

角度 2 订阅值更改未反映在 html 上

只有 css 文件中的某些特定更改会反映在浏览器中

useState 设置方法不会立即反映更改

DTO 的更好方法?