
当直接在浏览器中打开本地 html 文件时,相对路径链接可能失效;需确保文件同目录、使用 `file://` 协议正确访问,或通过本地服务器解决。
在本地开发中(尤其是无网络环境,如校园手机存储场景),常希望通过双击 .html 文件直接运行网页应用(例如考勤系统)。但你遇到的 ERR_FILE_NOT_FOUND 错误非常典型——它并非代码写错,而是浏览器对 file:// 协议的安全限制所致。
✅ 正确前提:文件必须位于同一目录
你的 HTML 代码本身是标准且正确的:
GO TO FILE2
GO TO FILE1
✅ 不需要 ./(可省略),也不建议用 ../ 或绝对路径(如 C:/...),因为跨盘符或路径硬编码会严重降低可移植性。
✅ 确保 file1.html 和 file2.html 确实处于同一文件夹下(例如:/AttendanceApp/file1.html 和 /AttendanceApp/file2.html)。
⚠️ 根本原因:Chrome / Edge 的 file:// 安全策略
现代浏览器(Chrome、Edge、Brave 等)出于安全考虑,默认禁止 file:// 页面通过相对 URL 加载其他本地资源(包括跳转、AJAX、fetch、iframe 等),即使文件物理存在。这是故意设计,不是 bug。
因此,双击打开 file1.html → 点击链接 → 触发 file://.../file2.html 请求 → 浏览器直接拦截 → 显示 ERR_FILE_NOT_FOUND。
立即学习“前端免费学习笔记(深入)”;
✅ 可行解决方案(按推荐顺序)
✅ 方案 1:使用轻量本地服务器(最推荐 ✅)
无需网络,不依赖外网,完全离线可用,且兼容所有现代功能(如 localStorage、fetch、CSS 模块等):
手机端(Android):安装 KWS - Simple Web Server(免费、无广告、支持目录浏览和热重载)。
将 AttendanceApp 文件夹放入手机任意位置(如 Internal Storage/AttendanceApp/),用 KWS 打开该目录 → 启动服务器 → 在手机浏览器访问 http://localhost:8080/file1.html 即可正常跳转。-
电脑端(开发调试):终端进入项目目录,一行命令启动服务:
# Python 3(需已安装) python -m http.server 8000 # 或使用 npx(需 Node.js) npx http-server -p 8000
然后访问 http://localhost:8000/file1.html —— 所有链接、脚本、样式均正常工作。
? 优势:绕过 file:// 限制,启用完整 Web API,未来扩展(如添加 JS 表单、本地存储记录)无障碍。
✅ 方案 2:更换为兼容 file:// 的浏览器(备用)
部分浏览器对本地文件更宽松:
- Firefox:默认允许同目录下的 file:// 跳转(测试确认:Firefox Android / Desktop 均支持)。
- Kiwi Browser(Android,基于 Chromium):支持启用 --unsafely-treat-insecure-origin-as-secure 标志(进阶用户适用)。
⚠️ 注意:不推荐长期依赖此方式,因行为不可控且不符合 Web 标准。
❌ 不推荐方案
- 修改 Chrome 启动参数(如 --allow-file-access-from-files):仅限桌面版旧版本有效,新版已废弃,且存在安全风险。
- 使用 file:/// 绝对路径:路径含盘符(如 file:///C:/...)无法跨设备复用,手机根本无 C: 盘,彻底破坏离线便携性。
? 额外建议:优化你的考勤系统
既然目标是「纯离线手机考勤」,请同步考虑:
- 使用 localStorage 存储学生签到状态(无需后端);
- 添加时间戳与简单表单( +
- 导出数据为 .txt 或 .csv(通过 Blob + a[download] 实现,file:// 下仍可用);
- 将整个项目打包为 ZIP,分发给同学解压即用 —— 配合 KWS,零配置上线。
只要文件结构清晰、服务环境就位,你的本地 HTML 考勤系统就能稳定运行于任何无网环境。











