vue部署包可配置后台接口地址的方法
有时候一个部署包可能要应用于不同服务器,这就需要频繁更换后台地址。
由此引申出了部署包可直接配置后台地址的需求,这样就不需要频繁打包了。
方法
1. public 新增 config.js 文件(会被恶意修改地址,不安全)
public 文件夹下的文件是不会被打包
// public/config.js
window.CUSTOM_CONFIG = {
BASE_URL: 'http://localhost:9001', // 后台接口地址
}
同个文件夹下的index.html文件的head标签内引入config.js
<script src="<%= BASE_URL %>config.js" type='text/javascript'></script>
然后在需要的地方引入,如 axios 封装的request.js文件:
const config = {
baseURL: window.CUSTOM_CONFIG.BASE_URL, // 引入 config.js 的配置
timeout: 550000,
}
service = axios.create(config);2. public 新增一个 json 文件存放地址
// config.json
{
"BASE_URL": "http://localhost:9001"
}
然后在 axios 封装的request.js文件下通过XMLHttpRequest获取
(网上有一些是直接用axios获取,但是我这里要同步操作,不然还没返回数据代码已经执行到下面去了,只能用XMLHttpRequest来获取)
// request.js
let xmlhttp = new XMLHttpRequest();
xmlhttp.open('get', './config.json', false);
xmlhttp.send(null);
let BASE_URL = JSON.parse(xmlhttp.responseText).BASE_URL;
let service = {};
const config = {
baseURL: BASE_URL,
timeout: 550000,
}
service = axios.create(config);但是这样浏览器会出现提示,搜了一下说这个不会有什么影响?(强迫症可能会看着不爽)

出现的问题
神奇的是根据上一篇文章“vue项目部署到IIS”部署到另一台服务器的时候,居然失败了!显示“跨域”。搜了好久发现好多文章都是一样的设置,后面让后台加了跨域的设置才成功了!

然后另一个问题出现了!!!
用ip地址访问的时候,后台接口地址还是显示localhost,不会自动切换到ip访问地址。
解决方案: 如果 ip 地址访问的时候,要将config.json里面的后台接口地址改成 ip 访问的地址才可以(这样不管是localhost还是ip地址都可以访问到)
个人猜测: 出现这样的原因是从json文件里获取的是字符串,地址相当于写死了,不会自动匹配成相应的IP地址(个人见解,欢迎指正!)

到此这篇关于vue部署包可配置后台接口地址的文章就介绍到这了,更多相关vue配置后台接口地址内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Vue3中reactive变量重新赋值无法响应的3种处理方法
这篇文章主要给大家介绍了关于Vue3中reactive变量重新赋值无法响应的3种处理方法,在Vue3中可以使用reactive函数将一个普通对象转换为响应式对象,需要的朋友可以参考下2023-08-08
vue3使用vue-cli引入windicss报错Can‘t resolve windi.css问题
这篇文章主要介绍了vue3使用vue-cli引入windicss报错Can‘t resolve windi.css问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-03-03
postcss-pxtorem设置不转换UI框架的CSS单位问题
这篇文章主要介绍了postcss-pxtorem设置不转换UI框架的CSS单位问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-07-07
Vue3+NodeJS+Soket.io实现实时聊天的示例代码
本文主要介绍了Vue3+NodeJS+Soket.io实现实时聊天的示例代码,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2022-01-01
vue3+ElementPlus+VueCropper实现上传图片功能
文章介绍了如何在Vue3、ElementPlus和VueCropper组件中实现图片上传和裁剪功能,包括放大、缩小等操作,感兴趣的朋友跟随小编一起看看吧2025-01-01


最新评论