本文将从多个方面对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 打包后请求地址错误进行了详细阐述,并提供了解决方法,希望对开发者有所帮助。
原创文章,作者:QKWAR,如若转载,请注明出处:https://www.506064.com/n/374276.html