CSS 未在所有浏览器中更新

CSS not updating in all browsers

我有一个正在使用的 WordPress 网站,我的 .CSS 文件中的所有更改都没有出现在 Chrome、Firefox 或 Edge 中。

我直接从标签加载 CSS:

<link href="/wp-content/themes/mytheme/css/style.css" type="text/css" rel="stylesheet">

如果我对 CSS 文件进行更改,更改不会显示在浏览器中。当我使用 DevTools 检查网站时,我可以清楚地看到加载了 CSS 的 older/cached 版本。

我已经试过了: Ctrl+F5, DevTools 打开时禁用缓存, 手动清除缓存, 硬重载...

没有任何效果。甚至不清除缓存。

我唯一的解决办法是等待 10-15 分钟然后重新加载页面,或者重命名 .css 文件并重新链接它。我读过使用 CSS 版本控制(style.css?v=1.0 等)时有一个解决方法,但我拒绝习惯这些烦人的解决方法。

我只是不明白为什么会这样。有什么帮助吗?谢谢。

Wordpress 有自己的机制来将 js 和 css 放入它所服务的页面中。

Check wp_enqueue_style and wp_enueue_script

发生这种情况是因为用户加载已保存的资源比再次下载它更快。这就是资源缓存背后的原因。使用它的时间是有限的,可以设置为 none 完全禁用缓存 (client-side);也可以从服务器设置时间。

style.css?version=1.0后面的"trick"是为了让浏览器根据你的CSS"version"得到一个"new"URL去下载.这是:如果您有文件 style.css?version=1.0 并导航到您的页面,则 URL 将被保存为 已加载 资源;当您将文件版本更改为 style.css?version=1.1 并再次导航到您的页面时,浏览器没有注册 "exact" URL,因此它请求该资源 第一次.

如果您使用的是 Back-End 语言,您可以使用 style.css?version={getFileLastModificationTime} 之类的简单解决方法。这样,生成的 link 将最后一次修改文件作为您的 "file version".