家人们,想问一个 react 路由相关的问题,求大佬解答。

25 天前
Croow  Croow
场景:
我接触 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 吧
637 次点击
所在节点   问与答  问与答
3 条回复
iOCZS
iOCZS
25 天前
因为 history 模式对应的路由,服务端没有
4Et5ShxMIq58n6Lr
4Et5ShxMIq58n6Lr
25 天前
懒得贴了,自己去查查 hash 模式 和 history 模式的 区别就知道了,
IvanLi127
IvanLi127
25 天前
有一种方案是在每个子目录都放 index.html ,应该能配出来

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1107904

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX