点击访问 上节代码;有点套娃,请耐心查看
然后确定在 index.html 里引入样式代码是这样写的:
<MyNavLink to="/xxx/about">About</MyNavLink>
<MyNavLink to="/xxx/home">Home</MyNavLink>
<Switch>
<Route path='/xxx/about' component={About} />
<Route path='/xxx/home' component={Home} />
</Switch>
点击路由跳转后刷新页面,结果:样式丢失,效果图如下

http://localhost:3000/css/bootstrap.csshttp://localhost:3000/xxx/css/bootstrap.css问题很明显,这个地址下并没有 bootstrap.css 文件,默认返回了 index.html 文件,响应结果如下所示:

【使用绝对路径】index.html 里引入样式代码改成这样:
【使用绝对路径】index.html 里引入样式代码改成这样:
【改用HashRouter】index.js 改成如下:
import React from 'react';
import ReactDOM from 'react-dom/client';
import { HashRouter } from 'react-router-dom'
import App from './App';
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
<React.StrictMode>
<HashRouter>
<App />
</HashRouter>
</React.StrictMode>
);
使用HashRouter不管怎么刷新,地址栏都是 http://localhost:3000/#/xxx/about,# 号前面才是真正的地址,后面都是哈希值,不会拼接到请求地址上,同样避免了上面的问题