<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。这样请求资源时#后面的路径不再查看。
如果本人理解不对请指出 谢谢!