路线使用React给404

时间:2019-03-21 09:36:00

标签: reactjs react-router-v4

我的网站上有一个链接:

<a href="/en">
    <li className="lang">ENGLISH</li>
</a>

和一条路线:

<Route history={browserHistory} path="/en">
    <HomeLayoutEn />
</Route>

但是当我单击链接时,我得到了404

最初,我的链接是:

<Link to="/en">
    <li className="lang">ENGLISH</li>
</Link>

但是我将其更改为html链接,因为我对SPA路由不感兴趣,并且在手动访问url时遇到404问题。

任何想法都出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

使用React-router中的Link组件代替锚标记,因为锚标记将使用浏览器历史记录API,而Link使用由Router组件使用的历史对象,而您的整个路由都由Router管理。

此外,您需要在Router组件上指定历史记录,而不是Route,并且Route组件只需简单地指定路径。另外,您将在层次结构的顶层拥有一个路由器组件

<Router history={browserHistory} >
    <Route path="/en" component={HomeLayoutEn} />
</Router>

“链接”将用作

<Link to="/en">
    <li className="lang">ENGLISH</li>
</Link>

现在,如果您希望使用不带SPA的anchor tag,那么对于每条路线,您都需要生成不同的bundle输出html