之前用electron把jeecgboot打包成桌面应用,这次想试一下tauri,但是本地运行都没问题,打包后一直报错,无论我如何修改服务器地址,请求域名永远都是http://tauri.localhost/jeecgboot
我发现2023年有人跟我类似问题:
https://segmentfault.com/q/1010000044323575
刚开始以为是tauri不支持axios请求,不支持http请求,各种查资料装插件,结果一点没用,最后发起有偿提问,网友终于给我指出了可能得问题:
1、需要把请求地址加到csp里
2、打包后(生产环境)服务器代理失效,需要手动拼接完整域名
我仔细思考了,第二个问题非常关键:
http://tauri.localhost/jeecgboot这个域名怎么来的?
因为在生产环境,我通过代理设置的域名失效了,所以tauri给我加了默认的tauri.localhost作为域名,后面的/jeecgboot是因为在env里配置了后台接口父地址。
终于真相了!
于是修改axios的baseUrl相关代码,当生产环境的时候,要拼接完整域名。
这样修改后虽然请求地址正确了,但是由于jeecgboot框架本身涉及到其他请求,导致我无论如何设置csp都还是会报错,所以我选择另外建一个简单项目来验证问题。
使用官网的步骤创建项目。
设置服务器代理。
生产环境下,使用完整域名作为baseUrl
这次我甚至没有设置csp,打包后请求接口就完整正常了!
说来说去还是自己基础知识薄弱,不知道服务器代理只在开发环境有用。