React页面刷新样式丢失问题及解决方案

我们把路由都变成二级路由,统一加上/dean/路由前缀
在这里插入图片描述
效果:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
看着没什么问题,但是一旦刷新页面,样式就废了:
在这里插入图片描述

我们把路由恢复,看看bootstrap网络请求正常不正常:
在这里插入图片描述

我们发现bootstrap请求地址是http://localhost:3000/css/bootstrap.css,localhost:3000是本地服务器,webpack里面的webServer配置了public这个文件夹都是localhost:3000/根目录对应的位置

我们通过地址请求看看:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果请求了一个不存在的资源,那么脚手架会默认把index.html返回

我们再把路由改回去到二级路由的状态:
在这里插入图片描述

我们再测试一遍,刷新页面的时候,按住shift强制刷新,看看网络请求:
在这里插入图片描述
在这里插入图片描述
所以,在多级路由中刷新,会丢失样式

解决方法:

1.把.删了:
在这里插入图片描述

./css/bootstrap.css表示以当前所在路径为基准,去找/css/bootstrap.css,访问http://localhost:3000/dean/home的时候, 就去./dean/css去找bootstrap.css,肯定没有
去掉点. 改成/css/bootstrap.css,表示基于public文件夹

方法二:
把.改为%PUBLIC_URL%,指的就是public目录,相当于写死了
在这里插入图片描述
方法三:
就想用点. 的话, 就把路由换为hash方式:
在这里插入图片描述
在这里插入图片描述
因为hash路由这个模式下,#右侧的后不会带入查询

总结

在这里插入图片描述

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值