Route 使用 React 给出 404
Route is giving 404 with React
我的站点中有一个 link:
<a href="/en">
<li className="lang">ENGLISH</li>
</a>
还有一条路线:
<Route history={browserHistory} path="/en">
<HomeLayoutEn />
</Route>
但是当我点击 link 时,我得到了 404
最初,我的 link 是:
<Link to="/en">
<li className="lang">ENGLISH</li>
</Link>
但我将其更改为 html link,因为我对 SPA 路由不感兴趣,并且在手动访问 url 时我遇到了 404 问题。
知道失败的原因吗?
使用来自 React-router 的 Link 组件而不是锚标记,因为锚标记将使用浏览器历史记录 API 而 Link 使用路由器组件使用的历史对象并且您的整个路由都由 Router 管理。
此外,您需要在 Router 组件上指定 history 而不是 Route,而 Route 组件只需要简单地指定路径。此外,您将在层次结构的顶层有一个 Router 组件
<Router history={browserHistory} >
<Route path="/en" component={HomeLayoutEn} />
</Router>
和Link将用作
<Link to="/en">
<li className="lang">ENGLISH</li>
</Link>
现在,如果您希望在没有 SPA 的情况下使用 anchor tag
,那么您需要为每条路线生成不同的包输出 html
我的站点中有一个 link:
<a href="/en">
<li className="lang">ENGLISH</li>
</a>
还有一条路线:
<Route history={browserHistory} path="/en">
<HomeLayoutEn />
</Route>
但是当我点击 link 时,我得到了 404
最初,我的 link 是:
<Link to="/en">
<li className="lang">ENGLISH</li>
</Link>
但我将其更改为 html link,因为我对 SPA 路由不感兴趣,并且在手动访问 url 时我遇到了 404 问题。
知道失败的原因吗?
使用来自 React-router 的 Link 组件而不是锚标记,因为锚标记将使用浏览器历史记录 API 而 Link 使用路由器组件使用的历史对象并且您的整个路由都由 Router 管理。
此外,您需要在 Router 组件上指定 history 而不是 Route,而 Route 组件只需要简单地指定路径。此外,您将在层次结构的顶层有一个 Router 组件
<Router history={browserHistory} >
<Route path="/en" component={HomeLayoutEn} />
</Router>
和Link将用作
<Link to="/en">
<li className="lang">ENGLISH</li>
</Link>
现在,如果您希望在没有 SPA 的情况下使用 anchor tag
,那么您需要为每条路线生成不同的包输出 html