这是一个创建于 62 天前的主题,其中的信息可能已经有所发展或是发生改变。
场景:
我接触 react 一个月了,想试一下 cicd 发布项目,我写的一个纯前端的项目,打包后上传到腾讯云,用指令:cross-env PUBLIC_URL=xxx 腾讯云存储桶地址 node scripts/build.js ,把所有资源导入方式都改成了腾讯云的地址。
问题:
但是我访问 index.html 时一直是白屏,查了半天发现 js ,css 等资源获取成功了,原因在 index.html 读取不到路由。
解决办法:
然后在 index.js 把
import {BrowserRouter} from 'react-router-dom';
root.render(
<BrowserRouter>
<App />
</BrowserRouter>
);
改为 hash 模式,发现就能正常访问了。
import {HashRouter as Router} from 'react-router-dom';
root.render(
<Router >
<App />
</Router>
);
疑问:
为啥要 hash 才行呢?那生产环境发布代码大多数也不是用的 hash 吧
 |
|
1
iOCZS 62 天前
因为 history 模式对应的路由,服务端没有
|
 |
|
3
IvanLi127 62 天前
有一种方案是在每个子目录都放 index.html ,应该能配出来
|