本文详解为何使用 C:/... 路径无法打开本地 DOCX 文件,以及如何通过 file:/// 协议 + URL 编码规范实现稳定访问,避免“File not found”错误。
本文详解为何使用 `c:/...` 路径无法打开本地 docx 文件,以及如何通过 `file:///` 协议 + url 编码规范实现稳定访问,避免“file not found”错误。
在 HTML 中直接使用形如 C:/folder/file.docx 的路径作为 <a href="..."> 的链接是无效且不被浏览器支持的。现代浏览器出于安全限制,拒绝解析无协议前缀的本地文件路径(即缺少 file:// 或 http:// 等 scheme),因此即使文件真实存在、拼写正确,也会统一报错“File not found”——这正是你遇到的“跳过 April、June、July”的根本原因:不是文件缺失,而是链接格式非法,导致浏览器根本未尝试加载。
✅ 正确做法是使用标准的 file:/// 协议(注意是三个斜杠),并严格遵循 URL 编码规范:
以下是修正后的完整 HTML 示例(已适配你的路径结构):
<li><a href="file:///C:/k9trc%20calendar%202023-4/January%202023.docx">January</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/February%202023.docx">February</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/March%202023.docx">March</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/April%202023.docx">April</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/May%202023.docx">May</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/June%202023.docx">June</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/July%202023.docx">July</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/August%202023.docx">August</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/September%202023.docx">September</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/October%202023.docx">October</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/November%202023.docx">November</a></li><li><a href="file:///C:/k9trc%20calendar%202023-4/December%202023.docx">December</a></li>
⚠️ 重要注意事项:
立即学习“前端免费学习笔记(深入)”;
? 最佳实践建议:
对于内部管理网页,优先考虑将文件托管于本地 Web 服务器(如 Python 的 http.server、XAMPP 或 VS Code Live Server),使用 http://localhost:8000/months/January%202023.docx —— 这规避了 file:// 的全部安全限制,且路径更稳定、可跨设备访问。
只要严格遵循 file:/// + URL 编码规则,所有 12 个月份文件均可稳定访问,不再出现“跳过”现象。