为 apache 子域配置反应路由器

时间:2020-12-29 18:45:49

标签: reactjs react-router

您好,我正在试验 React 路由器,我开发了 3 个“页面”,我想将此应用程序部署到子域中的服务器。我的问题是我无法使反应路由器按预期工作。我希望我的应用程序在特定 URL 上运行。我不确定是否正确理解了路由的原理。我正在 XAMP 上进行测试。我已经通过 browserRouter 实现了一个基本的 React 路由器,但我有几个问题。

首先是我的主要组件和路由:

<Router >
    <nav className='blue-grey darken-3'>
      <div className="blue-grey darken-3nav-wrapper">
        <ul id="nav-mobile" className="">
          <li><Link to="/">Home</Link></li>
          <li><Link to="/creation">Creation form</Link></li>
        </ul>
      </div>
    </nav>

    <div className='mainContainer'>
        <Switch>
          <Route exact path="/">
            <HomePageComponent/>
          </Route>
          <Route exact path="/user/:id">
            <UserPageComponent/>
          </Route>
          <Route path="/creation">
            <UserCreationPageComponent/>
          </Route>
        </Switch>
    </div>
</Router>

我已将我的应用部署到名为

的本地主机子域 <块引用>

/reactTest

所以我使用

访问应用程序 <块引用>

本地主机/reactTest

如果我使用应用程序中的链接导航,一切都会按预期进行。但是我有几个问题:

我期待如果我直接在浏览器 localhost/reactTest/creation 上访问一个 url,我将被导航到创建组件。相反,我收到了 404 错误。

此外,当我使用应用程序的链接进行导航时,我看到该域已被丢弃。因此,例如,当我点击创建页面链接时,我不是导航到 localhost/reactTest/creation,而是导航到 localhost/creation ,它工作正常,尽管对我来说似乎不正确。同样,如果尝试导航到它是直接从浏览器访问它,它不起作用。

我还尝试通过将 <Router > 替换为 <Router basename="/reactTest"> 来为路由器设置 basename。这解决了“消失”子域的问题,因此我正确导航到一个页面,而应该丢失 url 的“reactTest”部分,但仍然无法在应用程序外部访问它。 这就是预期的行为吗?有没有办法按照我上面描述的方式实现导航?

先谢谢你,

0 个答案:

没有答案