改完页面样式,一刷新,发现排版全乱了——按钮跑偏、字体变小、间距不对。第一反应:是不是缓存搞的鬼?
先别急着清缓存
确实,浏览器缓存经常背这个锅。你改了CSS文件,但用户打开时加载的还是旧版本,自然就错乱。比如你把按钮宽度从 100px 改成 120px,可别人看到的还是 100px,那布局可能就挤在一起了。
这时候按 F5 刷新没用,得强制刷新(Ctrl + F5 或 Cmd + Shift + R),让浏览器重新下载资源。如果刷新后正常了,基本就是缓存问题。
但有时候真不是缓存
我之前遇到一次,本地调试好好的,上线后部分用户说导航栏塌了。我自己清了缓存也还是错的。后来查发现,是构建工具把新生成的CSS文件名改了,但HTML里引用的还是旧文件名,等于根本没加载新样式。
还有种情况是CDN没同步。你服务器上文件更新了,但CDN节点还在吐旧内容,等几分钟甚至几小时才生效。这时候你自己在不同网络环境下测试,结果可能都不一样。
怎么快速判断
打开开发者工具(F12),切换到 Network 标签页,勾上 “Disable cache”,然后刷新页面。看关键的CSS文件请求状态是不是 200,如果是 304,说明走的是缓存。
再检查一下该文件的响应内容,点进去看看里面的样式是不是你最新提交的。如果不是,那就不是浏览器的问题,而是部署环节出错了。
避免这类问题的小建议
发版时给静态资源加版本号或哈希值,比如:
<link rel="stylesheet" href="style.css?v=2.1.0">
或者用构建工具自动生成带 hash 的文件名:
<link rel="stylesheet" href="style.a1b2c3d.css">
这样每次更新后,浏览器会当成一个全新的文件去下载,彻底绕开缓存陷阱。
另外,上线后多在几个设备和网络环境里测一下,别只盯着自己电脑看。有时候你以为发布了,其实只发布了一半。