You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React应用部署到Vercel时如何配置动态路由?

React电商应用部署Vercel的路由配置方案

当你的React电商应用(包含/、/cart、/detail/:id、/product、/about、/contact这些路由)部署到Vercel时,直接部署会出现刷新非根路径就404的问题——这是因为Vercel默认会去查找对应路径的静态文件,而单页应用的所有路由逻辑都由前端的React Router处理,只有一个index.html入口文件。

解决这个问题只需要添加Vercel的路由重写配置,具体步骤如下:

1. 创建vercel.json配置文件

在项目根目录新建vercel.json文件,写入以下内容:

{
  "rewrites": [
    { "source": "/(.*)", "destination": "/index.html" }
  ]
}

这个配置会让Vercel将所有路径的请求都转发到index.html,交给你的React Router匹配对应的组件,包括动态路由/detail/:id也能正常解析。

2. 保持现有React Router代码不变

你提供的应用内路由代码已经正确定义了所有路径对应的组件,不需要做任何修改:

<Router>
      <Nav searchBtn={searchBtn} data={navbarData} />
      <Routes>
        <Route path='/' element={<Home />} />
        <Route path='/product' element={<Product addToCart={addToCart} product={product} setProduct={setProduct} />} /> {/* detailHandler={detailHandler} */}
        <Route path='/about' element={<About />} />
        <Route path='/contact' element={<Contact />} />
        <Route path='/cart' element={<Cart cart={cart} setCart={setCart} />} />
        <Route path='/detail/:id' element={<Detail addToCart={addToCart} />} /> {/* data={detailData} */}
      </Routes>
      <Footer data={footerData} />
 </Router>

完成以上操作后重新部署到Vercel,所有路由(包括刷新动态路由页面)都能正常加载对应的组件,不会再出现404问题。

内容的提问来源于stack exchange,提问作者Shivʌm Singh Ʀathod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 15:52:16