Vue + Electron-builder ,Router 为什么不支持 history 模式

发布于 2022-09-12 23:41:02 字数 107 浏览 36 评论 0

不论是网上的各种教程,还是自己尝试之后,发现开发环境下,可以正常访问页面,但是一旦打包之后,只有 hash 模式可以访问页面,history 模式是一片空白。
求助各位大佬,能否帮忙答疑解惑下。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

怪我入戏太深 2022-09-19 23:41:02

因为调试模式下会开启 node.jshttp服务,当你访问类似 /index/page/1/2/3 的时候,其实真实目录下是没有这个文件的, 而 node.js 可以识别并帮助重定向到 /index 也就是入口。

但是一但打包之后,页面就是静态页面存放在目录中了,electrion 仅仅是使用他的特殊浏览器打开本地静态页面而已,那么本地静态页面是没有 /index/page/1/2 这样的目录的,当然就找不到了。

左岸枫 2022-09-19 23:41:02

假设你electron配置的入口页面是 ./dist/index.html
hash模式请求的url是host/index.html#page_a host/index.html#page_b 这样,通过hash值来显示对应的内容,但实际一直在./dist/index.html页面。
history模式下请求的url变成了host/page_a/index.html host/page_b/index.html,在开发环境node.js的http服务自动帮你处理了这段url,将所有请求都指向了./dist/index.html,所以一切正常,但是打包后的程序是不会对这段url做处理的,在目录里找不到host/page_a/index.html文件就显示空白了。

同样如果是web项目使用了history模式打包的文件,如果不在nginx中将全部url指向./index.html的话,也会出现错误。

荆棘i 2022-09-19 23:41:02

可以看看是跨域的问提还是

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文