html文件需部署到http服务器才可作为网址访问;双击打开走file://协议,导致fetch等前端功能失效;开发时可用live server或http-server启动本地服务;部署至github pages、vercel或netlify可获公网url;注意路径引用与https配置差异。

HTML 文件本身不是网址,它只是本地文件;要变成可访问的网址,必须部署到 HTTP 服务器上。
index.html 地址是 file:/// 开头?浏览器直接打开本地 HTML 文件时,走的是文件系统协议(file://),不是 HTTP 协议。所有现代前端功能(如 fetch、Service Worker、CORS 策略、相对路径解析)都依赖 http:// 或 https:// 协议,file:// 下基本不可用。
fetch("./data.json") 报错 net::ERR_FAILED,或控制台提示 Failed to load resource: net::ERR_FILE_NOT_FOUND
Live Server 插件,右键“Open with Live Server”,自动起一个 http://127.0.0.1:5500 服务npx http-server(需先 npm install -g http-server),运行后会输出类似 Starting up http-server, serving ./ 和 Available on: 的地址本质是把 HTML 文件放到一台持续在线、有公网 IP 或域名映射的 HTTP 服务器上。最常用且免费的方式是托管静态站点。
。Settings → Pages → Source(选 main 分支 + / (root)),几秒后生成类似 https://<username>.github.io/<repo></repo></username> 的网址https://<project>.vercel.app</project>
./css/style.css,在根路径部署(如 https://xxx.vercel.app/)没问题;但若部署在子路径(如 https://xxx.github.io/myapp/),需改用 /myapp/css/style.css 或配置 base 标签绝大多数情况下没区别,都是指向本机回环地址。但有几个实际影响点容易被忽略:
localhost 有特殊信任策略,比如允许 localStorage、fetch 到同域 API;而 127.0.0.1 可能触发更严格的跨域检查localhost 可以用自签名证书(如 mkcert 生成的)直接信任;127.0.0.1 需额外加 Subject Alternative Name 才能被识别localhost,不响应 127.0.0.1 请求,除非显式配置 host: "0.0.0.0"
真正卡住人的往往不是“怎么放上去”,而是路径写死、相对引用失效、或者误以为部署完就自动支持 HTTPS —— 实际上 Vercel/Netlify 默认开 HTTPS,但 GitHub Pages 的自定义域名必须手动启用,否则还是 HTTP。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!