我最终遇到的情况是,单击“主页”页面的链接会将斜杠设置为为basename
配置的router
,并导致Cannot GET /basename/
错误。
<NavLink className="logo" to="/"></NavLink>
<NavLink to="/contact">Contact</NavLink>
<Router basename="/en">
<Route path="/">
<Route path="/contact">
</Router>
几对事实:
domain.com/en
很好domain.com/en/contact
,并且效果很好domain.com/en/
,并将causes Cannot GET /en/
设置为在我通过将publicPath: '/'
添加到output
来对webpack进行修改之后,该斜杠开始出现在这里。
output: {
publicPath: "/",
filename: "js/main.[hash:8].js",
}
我这样做的原因是因为使用Suspense
和lazy
时,react是在.js
内寻找其他/en/
模块。该问题已由publicPath
解决,但是我又遇到了另一个问题。有人解决过类似的问题吗?