首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何同时使用多入口和历史模式的react-router?

如何同时使用多入口和历史模式的react-router?
EN

Stack Overflow用户
提问于 2021-01-18 17:05:31
回答 1查看 32关注 0票数 0

例如,我有两个页面localhost:8080/index.htmllocalhost:8080/entry.html。当我将localhost:8080/entry.html/mainlocalhost:8080/entry.html/personreact-router一起使用时,如下所示

代码语言:javascript
复制
import {BrowserRouter as Router, Route, Switch, Redirect} from 'react-router-dom';
<Router>
  <Switch>
    <Route exact path={'/main'} render={<Main />}>
    <Route exact path={'/person'} render={<Person />}>
  <Switch>
</Router>

如果它不能完美地工作,不知何故,当我刷新页面时,我得到了Cannot GET /subject.html/main

我试着

代码语言:javascript
复制
import {BrowserRouter as Router, Route, Switch, Redirect} from 'react-router-dom';
<Router basename="/subject.html">
  <Switch>
    <Route exact path={'/main'} render={<Main />}>
    <Route exact path={'/person'} render={<Person />}>
  <Switch>
</Router>

代码语言:javascript
复制
    devServer: {
        ....
        hot: true,
        historyApiFallback: true,
        publicPath: '/'
    },

而且它也不起作用。请告诉我怎么做。谢谢~

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-01-19 19:58:19

我自己意识到这一点。首先,在开发环境中,我们需要这样配置。

代码语言:javascript
复制
historyApiFallback: {
    verbose: true,
    rewrites: [
        {from: /^\/entry\/.*$/, to: '/entry.html'}, 
    ],
},

这意味着每当我们加载localhost:8080/entry/main时,它都会重定向到localhost:8080/entry.html/main

除了部署环境,您还需要像这样编写nginx。

代码语言:javascript
复制
  location / {
    rewrite ^/entry/(.+?) /entry.html/$1 last
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65771510

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档