Live Server仅提供本地HTTP服务与自动刷新,不上传文件至远程服务器;真正同步需用SFTP插件(如Nebula-Dev)配置uploadOnSave,或上线时采用Git+部署脚本。

Live Server 保存即刷新,但不是“同步”
Live Server 不同步文件到服务器,它只在本地起一个 HTTP 服务并监听文件变化。你改了 index.html,它自动刷新浏览器;但远程服务器上的文件完全不受影响。很多人误以为“热重载=同步”,结果上线前才发现代码根本没传上去。
常见错误现象:http://127.0.0.1:5500 能正常预览,但用浏览器直接打开 file:///path/to/index.html 就报错或样式丢失——这是因为 Live Server 强制走 HTTP 协议,所有资源必须用相对路径或根路径(如 /css/main.css),不能依赖 file:// 协议。
- 它不处理跨域请求,
fetch('/api/data')会失败,除非后端也跑在同源下 - 不支持 HTTPS,调试微信 JS-SDK、Service Worker 等需要安全上下文的场景直接不可用
- 无法替代部署流程,只是开发阶段的本地预览辅助工具
SFTP 插件才是真正做文件同步的
要让本地修改实时落到远程服务器(比如测试机、VPS 或 NAS),必须用 SFTP 类插件。目前最稳定的是 Nebula-Dev 的 SFTP 扩展,它基于 SSH,支持保存即上传、手动双向同步、差异比对和路径映射。
关键配置项必须显式设置,否则不会生效:
-
"uploadOnSave": true—— 启用后,每次保存就触发上传(仅变更文件) -
"watcher": { "files": "**/*", "autoUpload": true }—— 配合uploadOnSave提升响应速度,尤其适合频繁改 CSS/JS 的场景 -
"exclude": ["*.log", ".DS_Store", "node_modules/**"]—— 防止无意义文件污染远程目录
注意:remotePath 必须是绝对路径(如 /var/www/html),且确保你有对应写入权限;如果用密钥登录,需提前把私钥路径填进 privateKeyPath 字段,不能只靠密码认证。
Settings Sync 同步的是开发环境,不是网页文件
很多人混淆了“同步 VSCode 配置”和“同步网页文件”。Settings Sync(或官方已弃用的内置同步)只管插件、快捷键、主题、用户设置这些——它不会动你项目里的 .html、.js 文件,更不会上传到服务器。
容易踩的坑:
- 装了
Settings Sync就以为“换电脑也能继续开发”,结果发现新机器上没有项目文件,还得手动git clone或复制整个文件夹 - 误把
.sftp.json加进同步列表,导致不同机器连的远程路径不一致(比如一台连测试服,一台连生产服),上传时直接覆盖错环境 - 工作区级配置(
.vscode/settings.json)默认不同步,所以你在项目里配的prettier规则、eslint路径,不会自动带到其他设备
真正可靠的网页文件同步方案只有两种
如果你的目标是“改完代码立刻在目标服务器上看到效果”,就得选明确的传输机制:
- 开发期用 SFTP 插件:适合小项目、静态站、临时测试。优点是零配置成本、响应快;缺点是没版本控制、无法回滚、多人协作易冲突
-
上线期用 Git + 部署脚本:在服务器上
git pull或监听 webhook 自动拉取,配合npm run build等构建步骤。这才是可审计、可追溯、可协作的正解
别指望一个插件解决所有问题。SFTP 是“快”,Git 是“稳”,两者定位不同。很多团队用 SFTP 做日常调试,用 Git 做正式发布——混用没问题,但得清楚每一步到底在做什么。


















