404常见原因有三:一是相对路径跳转拼接错误,应改用绝对路径或new URL构造;二是HTML5 History模式未配服务端fallback;三是前后端路由冲突或base标签与构建路径不一致。
检查
跳转路径是否为相对路径且上下文错误
前端
用
这类相对路径跳转时,实际请求地址取决于当前页面 URL。比如当前在
下触发跳转,
浏览器
会请求
,而非预期的根路径
。这种错位是 404 最常见原因。
用浏览器地址栏确认当前页面完整 URL,再心算相对路径拼接结果
优先改用绝对路径:
(开头带
)
若需动态拼接,用
安全构造
确认服务器是否启用 HTML5 History 模式且未配置 fallback
Vue Router、React Router 等前端路由启用
模式后,URL 看似正常(如
),但刷新时浏览器直接向服务器请求该路径。如果 Nginx/Apache 没配 fallback,就会返回 404——因为真实文件并不存在。
Nginx 配置中必须包含类似
的 fallback 规则
Apache 需启用
并在
中添加重写规则,将非资源请求导向
静态托管服务(如 Vercel、Netlify)通常默认支持,但自建服务几乎一定需要手动配置
验证后端路由是否拦截了前端路由路径
当项目前后端同域且共用一个域名(如都走
),而前端跳转到
时,如果后端框架(如 Express、Spring Boot)恰好定义了同名 API 路由,就可能提前响应 JSON 或 404,导致前端路由根本没机会执行。
Comet AI 浏览器
下载 Comet AI 浏览器,体验由 Perplexity AI 驱动的革命性上网方式。内置 AI 助手可实时总结网页、跨标签页对比信息、自动执行任务。告别繁琐操作,让 AI 成为你的浏览副驾,大幅提升研究与工作效率。支持 Windows、macOS、Android 和 iOS。
下载
打开浏览器开发者工具 → Network 标签页,看 404 请求的
中
是
还是
如果是后者,说明请求被后端路由捕获,需调整后端路由优先级,或约定前端路由统一加前缀(如
)
检查后端日志,确认该路径是否真有对应 handler
排查
标签与构建输出路径不一致
会影响所有相对路径解析,包括
、
和 CSS 中的
。如果构建时设了
,但 HTML 中漏写或写错
,跳转和资源加载都会出错。
立即学习
“
前端免费学习笔记(深入)
”;
检查 HTML 源码中是否存在
标签,其
值是否与构建配置完全一致
若使用 Vue CLI 或 Vite,确认
中
与部署路径匹配;Create React App 则检查
字段
临时删掉
标签测试,若跳转恢复则问题定位成功
很多 404 表面是前端跳转失败,实则是服务端配置、构建路径、路由冲突三者之一没对齐。重点盯住 Network 面板里那个 404 请求的完整 URL 和响应头,比猜逻辑更快。
location.hreflocation.href = "user/profile"/admin//admin/user/profile/user/profilelocation.href = "/user/profile"/new URL("user/profile", window.location).hrefhistory/abouttry_files $uri $uri/ /index.html;mod_rewrite.htaccessindex.htmlhttps://api.example.com/order/listResponse HeadersContent-Typetext/htmlapplication/json/app/xxxbaselocation.hrefurl()publicPath: "/subapp/"hrefvite.config.tsbasehomepage