electron-egg打包后请求地址错误解决方法用法介绍
本文将从多个方面对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 打包后请求地址错误进行了详细阐述,并提供了解决方法,希望对开发者有所帮助。