11

我正在创建一个使用反应路由器的反应应用程序。我正在使用路由器来匹配路径:/bankName-:credit,它在本地开发中运行良好。我的应用程序唯一需要的路径是:/bankName-:credit,并且所有其他路径都会命中404。但是,当我将此应用程序部署到 netlify 时,默认情况下它会转到/并显示一个自定义404. 这都很好。但是现在如果我尝试去/hdfc-500然后它会给出一个 netlify not found 消息page not found

我尝试使用netlify 文档_redirects中提到的方法,但这不起作用。

这是我的路线:-

应用程序.js

<Route path='/:bankCode-:credit' component={NestedRoutes} />
<Route component={NotFound} />

这是我的NestedRoutes组件:-

const NestedRoutes = ({ match }) => (
  <Suspense fallback={<LinearProgress />}>
    <Switch>
      <Route exact path={`${match.path}/sc-generate`} component={SCGenerate} />
      <Route exact path='/:bankCode-:credit' component={Home} />
      <Route component={NotFound} />
    </Switch>
  </Suspense>
)

我在我的_redirects文件中使用以下代码:-

/* /:bankCode-:credit

但它试图完全匹配/:bankCode-:credit

我应该怎么做才能解决这个问题?

4

2 回答 2

22

我在这里重新创建了您的问题https://codesandbox.io/s/trusting-frost-ls353

解决方法很简单,用这个内容添加一个名为_redirects你的公用文件夹的文件

/* /index.html 200

您可以在此链接上找到更多信息。https://www.slightedgecoder.com/2018/12/18/page-not-found-on-netlify-with-react-router/

于 2019-06-12T15:56:52.603 回答
1

在 netlify 中传递 url 参数时遇到了这个问题,并通过删除“。”得到了解决。在构建文件夹内的index.html文件中的 href 和 src 链接之前。

希望这会对某人有所帮助。

于 2020-08-05T14:52:47.470 回答