您好,我正在试验 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”部分,但仍然无法在应用程序外部访问它。
这就是预期的行为吗?有没有办法按照我上面描述的方式实现导航?
先谢谢你,