本文将从多个方面对electron-egg打包后请求地址错误进行详细阐述,并给出解决方法。

一、electron-egg打包后请求地址错误的表现

在使用 electron-egg 进行开发时,通常会在 localhost 上启动一个本地服务进行开发调试,但是当用 electron-packager 进行打包后,突然发现之前能够正常请求的地址全部都请求不到了,而且没有报错信息。

二、可能出现请求地址错误的原因

1、静态资源路径问题

将 egg.js 项目打包成 exe 格式的应用程序后,所有的静态资源都会被打包在一起,因此需要设置正确的静态资源路径。

app.use(static(path.join(app.baseDir, 'app/public'), { prefix: '/public/' })); 

2、跨域问题

因为是在本地启动的 localhost 地址与打包后的本地应用程序的本地路径是不一致的,导致跨域问题。

解决方案:

app.config.security = { csrf: false, domainWhiteList: ['http://localhost:7001', 'http://localhost:8080'] }; app.config.cors = { origin: ctx => ctx.get('origin'), credentials: true, allowMethods: 'GET,HEAD,PUT,POST,DELETE,PATCH,OPTIONS' } 

3、服务地址设置问题

因为 egg.js 服务是在 localhost 启动的,如果在客户端请求时访问绝对路径,需要使用接口全路径,并且需要在窗口的 console 中打印出端口,以便于调试。

const baseUrl = process.env.NODE_ENV === 'production' ? 'http://localhost:8888/' : 'http://localhost:7001/' console.log('baseUrl:', baseUrl) 

三、电脑本地环境设置方法

为了避免出现请求地址错误和跨域问题,需要在电脑本地 hosts 文件中进行设置。

方法:

1、用管理员身份打开 hosts 文件

2、添加一条规则

127.0.0.1 localhost 

3、保存文件并重启应用即可

四、总结

本文从打包后请求地址错误的表现、可能出现请求地址错误的原因和电脑本地环境设置方法三个方面对 electron-egg 打包后请求地址错误进行了详细阐述,并提供了解决方法,希望对开发者有所帮助。