404错误表示服务器已接收请求但无法定位对应资源,需依次验证url准确性、文件物理存在性、服务器路由配置及客户端缓存干扰。

当你在浏览器中看到“404 Not Found”提示,而确认页面本应存在、服务器也未宕机,说明请求已成功抵达服务端,但目标资源路径在服务端无对应映射——这不是网络故障,而是精准的定位失败,必须从URL、文件、路由、配置四层逐级验证。
第一步:用浏览器开发者工具锁定真实请求路径
按 F12 打开 DevTools → 切换到 Network 标签页 → 刷新页面 → 在列表中找到状态为 404 的请求项。
点击该项 → 查看 Headers 子标签下的 Request URL,**复制完整地址(含协议、域名、路径、参数)**;不要只看地址栏,因为前端 JS 可能动态拼接了错误路径。
若该请求 Preview 显示的是正常 HTML 页面(比如首页内容),说明服务器错误地返回了 200 状态码而非 404——这是“软404”,需立即修正服务端配置,否则搜索引擎会持续抓取错误内容。
第二步:验证服务器上资源是否真实存在
方法一(FTP/cPanel):用 FTP 客户端或主机控制面板进入网站根目录,严格按 Request URL 中的路径逐级展开,例如请求 /assets/js/main.min.js,就依次打开 assets → js 文件夹,确认 main.min.js 文件是否存在且扩展名完全一致(.js ≠ .JS)。
方法二(SSH/Linux):执行命令 【ls -l /var/www/html/assets/js/main.min.js】,若返回 “No such file or directory”,即证实文件缺失;若文件存在但权限为 600 或 000,Web 进程无法读取,也会触发 404。
注意:Linux 服务器严格区分大小写,/CSS/ 与 /css/ 是两个不同路径,前端引用时错写一个字母就必然 404。
第三步:检查 Web 服务器路由与重写规则
① 查看 Nginx 配置:执行 【nginx -t && nginx -T | grep -A 5 "location"】,确认是否有 location 块覆盖了该路径,或是否误配了 try_files 指令(如 try_files $uri $uri/ /index.html; 会把所有未命中路径都 fallback 到 index.html,掩盖真实 404)。
② 查看 Apache 的 .htaccess:重点检查 RewriteRule 是否将请求错误重写到了不存在的脚本,例如 RewriteRule ^article/(.*)$ /post.php?id=$1,但 post.php 实际位于 /inc/post.php。
③ 若使用 Node.js(Express/Koa):检查路由注册顺序,Express 中 app.use() 中间件若放在所有路由之后,会导致未匹配路径直接 404;确保自定义 404 处理器是最后一个中间件。
第四步:排查客户端干扰因素
在悟空、Chrome 等浏览器中,地址栏输入 chrome://settings/siteSettings → 搜索对应域名 → 分别点击「Cookie」和「缓存的图像和文件」右侧的【清除数据】按钮。
禁用所有扩展程序,尤其名称含“跳转”“采集”“SEO优化”的插件——这类插件常在 URL 末尾强行添加 ?ref=xxx 参数,导致原始路径失效。
最后执行强制刷新:Windows/Linux 按 Ctrl + F5,Mac 按 Cmd + Shift + R,绕过本地缓存获取服务器真实响应。











