electron项目打包之后显示空白页面以及发送http请求地址错误

Posted luffy5459

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了electron项目打包之后显示空白页面以及发送http请求地址错误相关的知识,希望对你有一定的参考价值。

        electron项目在开发阶段,因为使用webpack脚手架,启用了webServer提供的http服务,所以有路由功能,当我们运行npm run electron:serve的时候,最后可以直接加载http://localhost:8080。在app里面就可以显示页面。

    当electron项目打包之后,成为桌面程序,这个时候就没有http服务支撑,所以加载的是静态页面,win.loadURL("app://./index.html")。

    这个首页因为没有http服务支撑,所以没有路由功能,最终无法显示。解决办法有两个,一个是改变路由设置模式,将mode:'history',改为mode:'hash'。就是修改router/index.js。

    还有一种办法就是配置一个 path:"*",component:()=>import('首页.vue')的路由。

    前面说了,桌面程序启动,并没有http服务,所以当发送ajax请求给其他url请求时,就没有所谓的baseURL指向某一个http://ip:port的url前缀,最后这个请求就会变为app:///api/xxx。为什么在开发阶段是可以的,因为开发阶段有本地http服务,而且有代理,所以不会出现请求地址错误,更不会出现跨域问题。

    这个问题的解决,1、修改请求时的url,给一个全路径url( http://ip:port/api/xxx ),而不是相对url( /api/xxx )。最后请求会正确发出去,但是另一个问题来了,就是跨域。默认electron安全策略是不支持跨域的。为了解决这个问题,我们需要自己设置忽略安全策略。2、在background.js中设置webPreferences:webSecurity:false。

以上是关于electron项目打包之后显示空白页面以及发送http请求地址错误的主要内容,如果未能解决你的问题,请参考以下文章

vue项目打包之后页面空白解决办法

vue2.x+electron创建桌面程序

vue2.x+electron创建桌面程序

解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题

create-react-app打包上线页面空白的问题

QT程序electron程序打包完毕之后,在MAC文件系统上的显示