404错误是服务器明确告知“找不到该URL资源”,修复关键在于使请求路径、文件位置和服务配置三者严格对齐:检查URL是否以http://开头而非file:///;用Web服务器(如python -m http.server)运行;通过浏览器Network面板确认真实请求路径;确保文件名大小写、扩展名、目录结构与URL完全一致;配置服务器fallback规则(如Nginx的try_files)以支持前端路由history模式。

404错误不是页面“坏了”,而是服务器明确告诉你:“这个 URL 我找不到”——修复关键不在改 HTML 内容,而在让请求路径、文件位置、服务配置三者对齐。
检查浏览器地址栏是不是 http:// 开头
很多人双击 HTML 文件,地址栏显示 file:///xxx/index.html,这压根没走服务器,不可能返回 404。它出问题只会是空白、图片不加载或控制台报 Not allowed to load local resource。
- 必须用 Web 服务器访问:Python 用户运行
python -m http.server 8000,然后打开http://localhost:8000/index.html - Node.js 用户用
npx serve -s(别用 Live Server 插件后还手动拖文件到浏览器) - Django/Flask 等框架必须通过
runserver访问,且 URL 是http://127.0.0.1:8000/xxx/,不是file://
用 Network 面板看真实请求 URL
按 F12 → Network → 刷新 → 找标红的 404 请求项,点开看 Request URL。这才是服务器实际收到的地址,也是你要对齐的目标。
- 如果
Request URL是http://localhost/css/style.css,但你的 CSS 文件实际在assets/css/style.css,就该改 HTML 中的<link href="assets/css/style.css"> - 如果 URL 含
%C3%B6这类编码,而你文件名是未编码的faqsö.html,Linux/macOS 服务器会 404;静态资源建议全用 ASCII 命名 - 大小写敏感:
IMG.JPG和img.jpg在多数线上环境是两个文件,Windows 下可能不报错,但一上生产必 404
确认文件真在服务器根目录对应路径下
Web 服务器只认物理路径,不猜意图。URL 路径必须和文件系统路径严格一致,包括斜杠、大小写、扩展名。
立即学习“前端免费学习笔记(深入)”;
- 文件在
/pages/about.html,就得访问http://localhost/pages/about.html,不能少/pages/ - Windows 上注意隐藏扩展名:右键属性看是不是
about.html.txt,不是about.html - Linux/macOS 区分大小写:
About.html≠about.html;若本地开发不报错,上线就 404,大概率是这个原因 - Apache 的
DocumentRoot或 Nginx 的root必须指向你放文件的那个目录;改完配置要重启服务
服务端 fallback 配置漏了(尤其 history 模式)
Vue Router / React Router 开启 history 模式后,URL 看起来干净(如 /user/profile),但刷新时浏览器直接向服务器发请求。如果 Nginx/Apache 没配 fallback,就会返回 404。
- Nginx 正确配置:
location / { try_files $uri $uri/ /index.html; },必须放在location /块内 - Apache 需启用
mod_rewrite,并在.htaccess中加:RewriteRule ^(.*)$ /index.html [L] - Vercel/Netlify 默认支持;但
npx serve或python -m http.server不支持,必须换vite preview这类带 fallback 的工具 - 本地测试时,如果
/user/profile跳转正常但刷新 404,基本就是这个配置缺了
最常被忽略的是:你以为在修 HTML,其实问题出在服务器怎么“找”那个 HTML。Network 面板里的 Request URL 是唯一真相,所有路径、配置、重写规则,都得向它对齐。



















