相对路径最可靠,file://协议在现代浏览器中基本不可用;应使用相对路径链接同级、子目录或上级资源,避免硬编码本地绝对路径;部署前需用本地服务器(如Live Server)测试,确保路径在HTTP上下文中有效。

直接用相对路径最可靠,file:// 协议在现代浏览器中基本不可用,双击打开时多数会因安全策略拒绝加载。
相对路径是首选,不是“可选”
只要目标文件和 index.html 在同一目录或子目录下,就该用相对路径。它不依赖磁盘位置、不硬编码驱动器名、部署到服务器后依然有效。
-
<a href="about.html">关于我</a>→ 同级文件 -
<a href="docs/manual.pdf">查看手册</a>→ 子目录下的 PDF -
<a href="../assets/logo.svg">返回上层资源</a>→ 跨一级目录
错误示例:<a href="C:%5Cprojects%5Csite%5Ccontact.html"></a> —— 这在别人电脑上根本不存在,浏览器也会静默失败。
file:// 链接在 Chrome/Firefox/Edge 中默认被禁用
即使你写成 <a href="file:///C:/data/report.xlsx"></a>,点击后大概率空白或报错 Not allowed to load local resource。这是浏览器主动拦截,不是路径写错了。
立即学习“前端免费学习笔记(深入)”;
- 仅少数旧版 IE 或启用特殊启动参数的 Chrome(如
--unsafely-treat-insecure-origin-as-secure="file://")可能临时绕过,但不可用于交付或协作 - 双击打开 HTML 时,整个页面运行在
file://上下文,而现代浏览器禁止其发起跨本地路径的资源请求(包括跳转、iframe、fetch)
想预览本地 PDF 或 DOCX?别用 href 直链
浏览器对本地文件的内嵌支持极弱,尤其是非 PDF 格式。更可行的做法是:
- PDF:用
<iframe src="docs/manual.pdf" width="100%" height="600"></iframe>—— 前提是 PDF 和 HTML 在同域(即已部署到本地服务器或使用 Live Server 插件) - Word/Excel:改用
<a href="docs/report.docx" download>下载报告</a>,靠download属性触发保存,而非尝试在线打开 - 用户自选文件:用
<input type="file">+FileReader读取并渲染(仅限客户端临时预览,不涉及路径跳转)
部署前务必验证路径是否“真能跑”
双击打开看到链接能跳,不代表它在真实环境中可用。真正容易被忽略的是:相对路径的解析基准,取决于当前页面 URL,而不是文件系统位置。
- 如果你用 VS Code Live Server 插件启动,地址是
http://127.0.0.1:5500/,那么href="css/style.css"就是请求http://127.0.0.1:5500/css/style.css - 但如果你把整个文件夹拖进浏览器地址栏,URL 是
file:///Users/xxx/site/index.html,此时所有相对路径都会被浏览器按本地文件系统解析,且受前述安全限制 - 所以测试阶段尽量用
http://服务启动,哪怕只是本地的 —— 它更贴近真实部署行为


















