react样式丢失问题

<MyNavLink to='/zh/home'>ABOUT</MyNavLink> // MyNavLink是我封装了NavLink
 <Route path="/zh/home" component={Home}></Route>

问题在react在设置了多级路由后在刷新页面的时候样式丢失
http://localhost:3000/zh/home
请求这个路径的时候会请求本地项目的public文件夹
假如 你的css文件在public下的css文件夹下面
他请求的时候会请求http://localhost:3000/zh/css/index.css在这个本地http://localhost:3000后面加一个/zh然后再去匹配组件/home

解决方法

把href最前面的点去掉,如下:

<link rel='stylesheet' href='/css/index.css'>// 直接找根目录
解决方案2

使用绝对路径,加%PUBLIC_URL%

<link rel='stylesheet' href='%PUBLIC_URL%/css/index.css'>
%PUBLIC_URL%这个是webpack的静态模板定义的
解决方案3

将BrowserRouter改用HashRouter。这样请求资源时#后面的路径不再查看。

如果本人理解不对请指出 谢谢!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容