live server仅支持全页重载而非热更新(hmr),改html/css/js后不刷新最常见原因是浏览器地址为file://而非http://;需右键html文件选择“open with live server”,确保地址以http://开头,并确认修改文件被html正确引用、已清缓存、源码已编译为产物。

Live Server 插件能让你改完 HTML/CSS/JS 就自动刷新浏览器,但它不是热更新(HMR),只是全页重载——状态清空、路由跳回首页、样式重新注入都是正常现象。
为什么改了代码浏览器却不刷新
最常见原因是地址栏显示的是 file:/// 而不是 http://。Live Server 完全不工作于本地文件协议;必须右键点击 HTML 文件 → Open with Live Server,确保浏览器地址是类似 http://127.0.0.1:5500/index.html 才有效。
- 检查你修改的文件是否被当前 HTML 正确引用:比如
<link rel="stylesheet" href="css/style.css">,那就得改css/style.css,而不是src/scss/main.scss - 缓存常导致“看起来没更新”:Windows/Linux 按
Ctrl+Shift+R,macOS 按Cmd+Shift+R强制重载 - 如果用了
type="module",确认 VS Code 已保存文件,且 Live Server 版本 ≥ 5.7.9(旧版可能返回错误 MIME 类型)
Live Server 不监听 .scss/.ts/.jsx 怎么办
它只监听最终被 HTML 直接引入的产物文件(如 style.css、bundle.js),不处理源码编译过程。改了 main.scss 没反应,是因为浏览器根本没加载它。
- 搭配
Live Sass Compiler插件:设好liveSassCompile.settings.formats输出路径,让它把.scss编译成同名.css,Live Server 才会触发刷新 - TypeScript 同理:用
ts-node或tsc --watch编译出.js,再让 HTML 引入那个 JS 文件 - React/Vue 项目别硬套 Live Server:直接关掉它,用
vite dev或npm start,否则端口和刷新逻辑会冲突
如何固定入口 HTML 和端口
默认每次右键哪个 HTML 就以它为入口,容易误刷错页面。想稳定开发,就得在项目根目录建 .vscode/settings.json 显式配置:
{
"liveServer.settings.root": "./src",
"liveServer.settings.port": 3000
}
-
"liveServer.settings.root"指定根路径后,所有相对引用都以此为准,避免路径错乱 -
"liveServer.settings.port"防止端口被占(比如 Docker 或其他服务占了 5500) - 改完配置要重启 Live Server:点状态栏
Go Live按钮旁边的 × 关闭,再重新打开
真正容易被忽略的是:Live Server 的“实时”只依赖文件保存事件,跟编辑器焦点无关。如果你关了 files.autoSave,又忘了手动 Ctrl+S,它就什么都不会做。











