Localhost路由正常,部署至Vercel后路由失效问题求助
解决Vercel部署后路由失效问题
先明确你的项目类型,不同场景对应不同修复方案:
1. 前端SPA(React/Vue/Angular等)场景
你当前的vercel.json配置针对的是Node后端服务,不匹配SPA项目,建议修改为:
{ "version": 2, "builds": [ { "src": "package.json", "use": "@vercel/static-build", "config": { "distDir": "dist" } // 替换为你的项目构建输出目录,比如React的build、Vue的dist } ], "routes": [ { "src": "/(.*)", "dest": "/index.html" } ] }
- 注意:
distDir必须和你项目实际的构建产物目录一致,否则Vercel找不到静态文件。
2. Node.js后端服务(如Express)场景
如果是后端服务,当前路由配置会把所有请求转发到根路径,但你的index.js可能没处理全路由逻辑:
- 确保后端代码里配置了兜底路由,比如Express项目:
// index.js 示例 const express = require('express'); const path = require('path'); const app = express(); // 你的业务路由 app.get('/api/user', (req, res) => { res.json({ name: 'test' }); }); // 兜底处理所有未匹配的路由 app.get('*', (req, res) => { // 若为前后端同构,返回前端页面;若纯后端,返回对应响应 res.sendFile(path.join(__dirname, 'build', 'index.html')); }); module.exports = app;
3. 通用排查点
- 重新部署时勾选Vercel控制台的「清除缓存」选项,避免旧配置干扰。
- 检查URL路径大小写:Vercel对路径大小写敏感,本地环境通常不区分,确保路由链接和实际路径一致。
- 确认构建产物完整:在Vercel部署记录里查看构建日志,确保所有路由相关资源都已上传。
内容的提问来源于stack exchange,提问作者Rashid khan
相关产品推荐
相关产品推荐

