【问题标题】:React router No Match 404 not working when deployed?部署时反应路由器 No Match 404 不起作用?
【发布时间】:2022-01-31 01:41:57
【问题描述】:

我在我的网站上添加了一个 No Match 404 错误页面,当我转到 localhost 上的错误路径时它工作正常,但是在我部署并转到像 .../invalidpath 这样的无效路径后,我得到了默认的 netlify找不到页面错误。下面是我的 App.js 组件:

import React from 'react';
import { Switch, Route } from 'react-router-dom';
import Navigation from './components/navigation/Navigation';
import Home from './pages/home/Home';
import Projects from './pages/projects/Projects';
import Contact from './pages/contact/Contact';
import NoMatch from './pages/404page/404Page';

import './App.scss';

function App() {
  return (
    <div className='app'>
      <Navigation />
      <Switch>
        <Route exact path='/' component={Home} />
        <Route path='/projects' component={Projects} />
        <Route path='/contact' component={Contact} />
        <Route path='*' component={NoMatch} />
      </Switch>
    </div>
  );
}

export default App;

【问题讨论】:

  • 您是否尝试过为您的 404 路由指定 path?这是定义 404 路由的更典型的方式。我不知道它是否会影响 netlify。
  • 是的,我在没有路径的情况下尝试过,但仍然无法工作。

标签: reactjs react-router netlify


【解决方案1】:

如果您使用 create-react-app 构建了应用程序并且您正在部署到 Netlify,则需要在项目的 public 目录中添加一个 _redirects 文件以支持客户端路由(React Router )。里面应该有这个:

/*  /index.html  200

详情here。 另外,请查看 Netlify 的官方文档,了解Redirects and rewrites

【讨论】:

  • 你链接的网站说文件应该叫_redirects,但它仍然不适合我
  • 尝试将应用重新部署到应该发布最新更改的 Netlify @notacorn。
猜你喜欢
  • 2017-09-10
  • 2019-02-04
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 2017-02-24
相关资源
最近更新 更多