繁体   English   中英

React:在 gh 页面上使用 react-router 进行客户端路由

[英]React: client-side routing with react-router on gh pages

我遇到了 React Create App 文档中讨论的关于使用 HTML5 pushState 历史 API 的路由器如何在静态文件服务器上失败而不将其配置为每次都提供 index.html 的问题。 使用 github 页面时如何解决此问题? 另外我没有使用 Create React App 或 react-scripts

我曾尝试向 BrowserRouter 组件添加基本名称

<BrowserRouter basename={process.env.PUBLIC_URL}>

对这里问题的更好解释:

https://github.com/facebook/create-react-app/blob/master/packages/react-scripts/template/README.md#serving-apps-with-client-side-routing

在 GitHub 页面上使用react-router-dom时,您需要使用HashRouter而不是BrowserRouter 它使用 URL 的#片段来保留路由,从而避免 GH 页面上缺乏对pushState的支持。

(为 GitHub 页面制作pushState一些笨拙的方法,但我个人不推荐它们。这是一个指南

import { HashRouter, BrowserRouter, Route, Switch } from 'react-router-dom';
ReactDOM.render(

      <HashRouter>
        <App />
      </HashRouter>,
  document.getElementById('root')
);

我使用 HashRouter 解决了这个问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM