react-router V4 刷新页面 404

发布于 2022-09-06 04:12:11 字数 647 浏览 11 评论 0

1、使用了browserhistory:

import createHistory from 'history/createBrowserHistory'; 
const history = createHistory(); 

2、BrowserRouter如下:
图片描述

3、MainPage 组件中使用了嵌套的子组件:
图片描述

4、服务器使用的 webpack-dev-server , 加了 --history-api-fallback

问题:页面正常显示,但是刷新 /cw/dsh 或者 /cw/t1 这种子组件路由的页面时,404 not found , 进入/cw 路由时虽然没有组件显示但并不是404.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

惟欲睡 2022-09-13 04:12:11

其实是 bundle.js 引入路径的问题:

//相对路径,嵌套路由下会访问 /cw/bundle.js 而实际路径应该是 localhost:8080/bundle.js 
<script type="text/javascript" src="bundle.js"></script>

//修改为这个路径,使 bundle.js 相对于根路径即可
<script type="text/javascript" src="/bundle.js"></script>
水晶透心 2022-09-13 04:12:11

修改webpack配置文件 output: 增加 "publicPath: '/',"

孤千羽 2022-09-13 04:12:11

路由更新,原先的写法已经不能用了

clipboard.png

clipboard.png

撩心不撩汉 2022-09-13 04:12:11

这貌似跟router没有关系,你打开调试工具看下,所有的资源路径都找不到了。
具体可以看下这个http://nphard.me/2016/03/07/n...

自由如风 2022-09-13 04:12:11

你的服务端配置了吗?nginx?
需要服务器端配置后才能够访问,你去看看router的官网的说明。

歌入人心 2022-09-13 04:12:11

试试React-router v4中的<Match />

只是一片海 2022-09-13 04:12:11

我是这么写的
history.push({ pathname: this.props.location.pathname, query: this.props.location.query });

清旖 2022-09-13 04:12:11

webpack devServer配置里面加一句historyApiFallback: true, 试试

小情绪 2022-09-13 04:12:11

https://www.01hai.com/note/av...
根据这篇文章设置了一下服务器的url重写即可解决

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文