浏览器缓存导致vscode保存html/css/js后页面未更新,因静态资源从磁盘缓存加载而非请求新文件;启用devtools的disable cache选项可立即解决。

VSCode 里改了 HTML/CSS/JS,保存后浏览器页面没变?不是 Live Server 坏了,也不是你代码写错了,90% 是浏览器缓存把旧资源钉死了——它根本没去拉新文件。
为什么强制刷新(Ctrl+F5)有时也不管用
因为浏览器对静态资源(style.css、script.js)的缓存策略独立于 HTML。即使你 Ctrl+F5 刷新了整个页面,CSS/JS 文件仍可能从磁盘缓存直接加载,不发请求,也就不会拿到新内容。
- DevTools 的 Network 面板里,看
style.css这类资源的状态码是不是200 (from disk cache)或304,而不是200 - Live Server 默认不发
Cache-Control: no-cache,它只负责 reload 页面,不管 HTTP 缓存头 - 某些浏览器(如 Edge 在 Windows 默认设置下)对
file://协议更激进地缓存,但你用 Live Server 时走的是http://,所以问题出在浏览器自身策略,而非协议限制
开发阶段最有效的缓存绕过方式
别等“清空所有历史记录”,那太重。精准控制,见效快:
- 打开 DevTools(F12),切到 Network 面板,勾选
Disable cache(仅在 DevTools 打开时生效)——这是开发时最干净、最推荐的做法 - 给静态资源加查询参数,比如把
<link rel="stylesheet" href="style.css">改成<link rel="stylesheet" href="style.css?v=2">,每次改完手动加个数字,强制浏览器当新资源拉 - 用无痕窗口(Incognito)测试,彻底排除插件干扰(广告拦截器、代码高亮工具等常偷偷缓存 JS)
- 确认
liveServer.settings.reload设为true(写在项目根目录的.vscode/settings.json里,不是用户全局设置)
Live Server 启动失败导致“看起来像没更新”
很多人以为“改了没反应”是刷新逻辑坏了,其实是服务压根没跑起来——状态栏右下角没出现 Live Server: 5500,就说明没启动,后续一切刷新都是空谈。
- 检查当前 VS Code 是否通过
File → Open Folder打开了一个文件夹,而不是双击单个index.html——Live Server 插件需要工作区根路径 - 确保根目录下有
index.html,或者右键某个 HTML 文件选择Open with Live Server(此时服务根路径变成该文件所在目录) -
标签不能被注释掉,比如<!-- <body>...</body> -->,否则 Live Server 注入的 WebSocket 脚本插不进页面,自动刷新失效 - 端口被占时 Live Server 会自动换到 5501,但如果你之前手动访问过
http://127.0.0.1:5500,浏览器可能还记着那个旧地址,得手动改成新端口或直接点状态栏链接
真正卡住人的地方,往往不是“怎么配 Live Server”,而是误把浏览器缓存行为当成服务故障;而最省事的解法,其实就藏在 DevTools 的那个 Disable cache 勾选项里——它不改代码、不装插件、不重启服务,一勾即生效。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











