项目打包后进入到路由页面再刷新页面就找不到了

项目打包后进入到路由页面再刷新页面就找不到了

找不到 192.168.137.1 的网页

找不到与以下网址对应的网页:http://192.168.137.1:8080/2

不打包在项目中跑没问题


正在回答

登陆购买课程后可参与讨论,去登陆

6回答

同学你好,在浏览器内可以由首页跳转到其他路由地址,是因为这是由前端自行渲染的,在React Router定义了对应的路由,脚本并没有刷新网页访问后台,是JS动态更改了location。当刷新时或者手动写其他路由时,首先是访问的后台地址,然后返回的页面内加载了React代码,最后在浏览器内执行;也就是说如果这个时候报404,是因为后台并没有针对这个路由给出返回HTML内容,也就不会执行React Router了。

可以这样修改,路由使用HashRouter,不要使用BrowserRouter。这样所有的请求都会定位到index.html这一个页面。index.js文件中:

http://img1.sycdn.imooc.com//climg/5e7c45bc0913b34014021157.jpg

修改之后重新打包试试,祝学习愉快!

好帮手慕星星 2020-03-25 18:22:45

同学你好,因为子页面开始的路由并不存在。是通过点击导航才添加的后面路由/1,/2等,所以直接访问子页面是不存在的,需要从首页开始。

祝学习愉快!

好帮手慕星星 2020-03-25 13:55:00

同学你好,这边打包之后用http-server运行如下

http://img1.sycdn.imooc.com//climg/5e7af1b60919757a12570148.jpg

只有两个地址,第一个是ip地址,测试没有问题

http://img1.sycdn.imooc.com//climg/5e7af1400930004212650487.jpg

第二地址测试也没有问题

http://img1.sycdn.imooc.com//climg/5e7af1cb09ac2d6e10900425.jpg

建议将build文件夹删除,然后重新打包,测试地址中找到ip地址,看看能不能正常访问。

如果还有问题,可以用源码测试下。

祝学习愉快!

  • 127.0.0.1:8080/1 这个页面是可以点进来 但是进来之后再点击刷新按钮就找不到了 而127.0.0.1:8080 这个页面点击刷新不会出现问题 不知道这是什么原因
    2020-03-25 14:55:31
  • 或者理解为 127.0.0.1:8080/1这个页面只能通过127.0.0.1:8080页面点击切换路由跳转,不能直接通过地址栏输入找到
    2020-03-25 14:58:44
提问者 weixin_慕数据0318417 2020-03-25 12:30:08
提问者 weixin_慕数据0318417 2020-03-25 12:17:36

项目打包好之后用http-server运行

http://127.0.0.1:8080  这个页面可以刷新

其他路由页面刷不出来

http://img1.sycdn.imooc.com//climg/5e7adb54095c9d4913460726.jpg

好帮手慕星星 2020-03-25 12:06:46

同学你好,意思是开始用http://192.168.137.1:8080/2 地址访问是可以的,项目打包之后,刷新页面就不可以了吗?建议检查下项目是否有启动呢?打包的时候是否关闭了启动的项目呢?

这边使用源码测试没有问题,即使打包之后还可以正常访问,之前启动的项目不要关闭哦,可以再重新开一个端口进行打包。

祝学习愉快!

  • 项目打包好之后用http-server运行build http://127.0.0.1:8080 这个页面可以刷新 其他路由页面刷不出来
    2020-03-25 12:31:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师