应使用HTTP服务器而非双击打开HTML文件:双击以file://协议加载会导致路径错误、fetch失败等问题;推荐用python3 -m http.server 8000或VS Code Live Server插件启动本地服务,确保CORS、模块导入、PWA等特性正常工作。
直接双击就能打开,但结果可能和你预期不一样——浏览器可能用本地协议(file://)加载,导致 JS、CSS 或图片路径出错,尤其是用了相对路径或 fetch 请求本地 JSON 的时候。
绕过双击的不确定性,手动通过浏览器加载:
index.html
file:///xxx/index.html,但触发了浏览器更完整的解析流程,部分跨域限制会略宽松(比如允许 XMLHttpRequest 读同目录下的 .json 文件)service worker 或 localStorage 在某些旧版 Chrome 中的 fi
le:// 上下文避免 file:// 协议的全部限制,让页面像真网站一样跑在 http://localhost:8000:
python3 -m http.server 8000
执行后,在浏览器访问 http://localhost:8000,点击你的 HTML 文件即可。关键优势:
立即学习“前端免费学习笔记(深入)”;
fetch、import 本地模块、PWA 特性全部可用python3 不是命令,试试 python -m http.server 8000
适合边改边看,保存自动刷新:
http://127.0.0.1:5500/xxx.html,支持热重载、代理、HTTPS 模拟等fetch('/api') 转发到错的地方3000 或 8080
真正容易被忽略的是:所有基于 file:// 的方式都算“离线预览”,不是真实 Web 环境;只要涉及 API 调用、模块导入、缓存策略或现代前端框架(Vue/Vite/Next),就必须走 HTTP 服务——哪怕只是临时的 python -m http.server。