不论是网上的各种教程,还是自己尝试之后,发现开发环境下,可以正常访问页面,但是一旦打包之后,只有 hash 模式可以访问页面,history 模式是一片空白。
求助各位大佬,能否帮忙答疑解惑下。
不论是网上的各种教程,还是自己尝试之后,发现开发环境下,可以正常访问页面,但是一旦打包之后,只有 hash 模式可以访问页面,history 模式是一片空白。
求助各位大佬,能否帮忙答疑解惑下。
假设你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的话,也会出现错误。
9 回答1.6k 阅读✓ 已解决
6 回答846 阅读
3 回答1.3k 阅读✓ 已解决
2 回答1.9k 阅读
4 回答880 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
3 回答794 阅读
因为调试模式下会开启
node.js
的http服务
,当你访问类似/index/page/1/2/3
的时候,其实真实目录下是没有这个文件的, 而node.js
可以识别并帮助重定向到/index
也就是入口。但是一但打包之后,页面就是静态页面存放在目录中了,
electrion
仅仅是使用他的特殊浏览器打开本地静态页面而已,那么本地静态页面是没有/index/page/1/2
这样的目录的,当然就找不到了。