报错环境:在React项目index.html中引入带有全局变量的js文件,然后直接访问子路由并刷新,控制台报错
<script src="../lib/wechat/jweixin-1.2.0.js"></script>
解决方法:把引入的全局js由相对路径修改为根路径“/lib”
<script src="/lib/wechat/jweixin-1.2.0.js"></script>
分析原因:因为webpackdevserver是把打包后的文件放在内存中访问,当访问子路由时devserver会把其当成在对应的子目录下故访问不到而报错,所以要改成根目录
补充:<browserRouter/>是使用 HTML5 提供的 history API (pushState, replaceState 和 popstate 事件) 来保持 UI 和 URL 的同步,常配合服务端渲染来使用