vue 打包后如何修改接口地址?提供 config.js 进行配置

本文介绍了在Vue项目打包后如何让用户方便地修改接口地址。通过创建config.js文件,用户可直接修改该文件进行配置,打包后的config.js文件仍存在于public文件夹下,不影响开发模式。

背景

在 vue 项目中,我们可以通过不同的环境,访问不同的服务器. 虽然可以使用环境的切换,但是在打包成html文件后,想对其进行修改就不行了。

// 环境的切换
if (process.env.NODE_ENV == 'development') {    
    axios.defaults.baseURL = 'https://localhost:8888';} 
else if (process.env.NODE_ENV == 'debug') {    
    axios.defaults.baseURL = '';
} 
else if (process.env.NODE_ENV == 'production') {    
    axios.defaults.baseURL = 'https://www.xxx.com';
}

需求,给用户提供,可以随时修改接口地址的方法

解决方案

添加一个 config.js ,用户可以通过修改此文件,使用对接口地址的配置

具体操作步骤:

1. 创建 config.js 文件

首先我们在public文件下建立一个js文件,就叫config.js吧,内容为

window.g = {
  AXIOS_TIMEOUT: 10000,
  ApiUrl: 'http://10.65.14.98:52333/api' // 配置服务器地址,
}

2. 引用 config.js 文件

接下来我们只需要在public文件夹下的index.html这个入口文件里引入该文件(注意路径就ok)

<script type="text/javascript" src="/public/config.js"></script>

3. 使用 config.js 中的值

可以在封装 axios 的代码中,设置 baseUrl 时,直接使用 config.js 中配置的值。代码如下:
注意看第三行

import axios from 'axios'

var baseURLStr = window.g.ApiUrl
console.log(baseURLStr)   //baseURLStr 这个可以打印出你的地址,就代表成功了
export function request(config) {

  // 1.创建axios的实例
  const instance = axios.create({
    baseURL: baseURLStr,//api的base
    timeout: 200000
  }) 

  // 2.axios的拦截器
  // 2.1.请求拦截的作用
  instance.interceptors.request.use(config => {
    method:'GET'
    return config
  }, err => {
    console.log(err);
  })

  // 2.2.响应拦截
  instance.interceptors.response.use(res => {
    return res.data
  }, err => {
    console.log(err);
  })

  // 3.发送真正的网络请求
  return instance(config)
}

总结

最后在打包成功之后,config,js文件不会被打包,依然存在public文件夹下,如果需要修改只需要用记事本打开文件修改地址就OK了,而且该方法也不会影响开发模式。

**参考:**https://blog.csdn.net/yangyangkl123/article/details/108769406

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值