reactjs - React router No Match 404 部署时不工作?

标签 reactjs react-router netlify

我在我的网站上添加了一个不匹配 404 错误页面,当我在本地主机上转到错误的路径时,它工作正常,但在部署并转到像 .../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;

最佳答案

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

/*  /index.html  200

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

关于reactjs - React router No Match 404 部署时不工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60687702/

相关文章:

reactjs - 使用 Jest 和 Enzyme(在 Symfony 中)进行 react 测试得到 "Syntax Error: Unexpected token import"

javascript - 使用静态参数响应路由器重定向

reactjs - React.createElement : type is invalid -- expected a string

angular - 将 Angular Universal 部署到 Azure 或 Netify(dist 和 dist-server 文件夹)

javascript - 如何比较/给出数组映射-react js的条件

javascript - React 中花括号内的花括号

netlify - 如何在 netlify.toml 配置中插入环境变量

jekyll - 如何将旧的 Netlify + Jekyll 站点地址重定向到新地址?

javascript - es2015中的多行赋值

javascript - 重定向更改页面 URL 但不呈现新页面