使用react router、react-router-dom 时,所有代码都按照官方文档编写正确。
例 react-router-dom v5代码:
import { BrowserRouter, Switch, Route } from "react-router-dom";
import Home from './pages/home'
import Test from './pages/test'
const App = () => (
<React.StrictMode>
<BrowserRouter>
<Switch>
<Route exact path="/" component={Home} />
<Route path="/test" component={Test} />
</Switch>
</BrowserRouter>
</React.StrictMode>
)
ReactDOM.render(<App />, document.getElementById('root'))
访问时只有首页 / 能正常访问,其他路由均不生效,如访问 /test,报错:Cannot GET /test
解决方法:
在webpack配置中增加 output.publicPath: '/',
devServer.historyApiFallback: true
module.exports = {
...
output: {
...
publicPath: '/'
},
devServer: {
historyApiFallback: true,
},
}