vue.js根据代码运行环境选择baseurl的方法


Posted in Javascript onFebruary 28, 2018

配置通用的API前缀可以更好在本地通过接口代理转发获取数据、或者部署时在Nginx中做反向代理,但是项目中一旦涉及大量的需要文件上传的部分(文件上传不走Ajax的方法),我们需要考虑更好管理接口的baseURL,项目中 Ajax 请求用 axios ,原始代码如下

修改前

// 创建axios实例、配置baseURL、超时时间
const service = axios.create({
 baseURL: '/development/api', // 从环境进程中根据运行环境获取的api的base_url
 timeout: 5000         // 请求超时时间
})
/* 保存分配角色 */
export function fetchSaveDisUser (params1) {
 return fetch({
  url: '/user/empower',
  method: 'post',
  params: params1,
  paramsSerializer: function (params) {
   return Qs.stringify(params, { arrayFormat: 'repeat' })
  }
 })
}

/* 上传文件URL 从运行环境process.env中读取API配置 */
export let uploadUrl = '/development/api/doi/analys/upload'

优化方法

找到config/dev.env.js 和 config/prod.env.js,在代码添加变量 API_BASEURL(名字自定义)如下:

module.exports = {
 NODE_ENV: '"production"', // PS:不要复制、开发环境和生产环境有区别
 API_BASEURL: '"/development/api/"' // 需要自己添加的代码
}

然后在需要使用baseURL的地方替换为 process.env. API_BASEURL

修改后代码如下

// 创建axios实例、配置baseURL、超时时间
const service = axios.create({
 baseURL: process.env.API_BASEURL, // 从环境进程中根据运行环境获取的api的base_url
 timeout: 5000         // 请求超时时间
})
/* 保存分配角色 */
export function fetchSaveDisUser (params1) {
 return fetch({
  url: '/user/empower',
  method: 'post',
  params: params1,
  paramsSerializer: function (params) {
   return Qs.stringify(params, { arrayFormat: 'repeat' })
  }
 })
}

/* 上传文件URL 从运行环境process.env中读取API配置 */
export let uploadUrl = process.env.API_BASEURL + '/doi/analys/upload'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
防止jQuery ajax Load使用缓存的方法小结
Feb 22 Javascript
javascript:void(0)的问题使用探讨
Apr 10 Javascript
jQuery判断当前点击的是第几个li的代码
Sep 26 Javascript
js格式化输入框内金额、银行卡号
Feb 01 Javascript
基于css3新属性transform及原生js实现鼠标拖动3d立方体旋转
Jun 12 Javascript
jQuery图片切换动画效果
Feb 28 Javascript
JavaScript设计模式之装饰者模式定义与应用示例
Jul 25 Javascript
vue导出html、word和pdf的实现代码
Jul 31 Javascript
详解angularjs4部署文件过大解决过程
Dec 05 Javascript
解决layer.open后laydate失效的问题
Sep 06 Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 Javascript
js实现简单点赞操作
Mar 17 Javascript
vue+element实现批量删除功能的示例
Feb 28 #Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
Feb 28 #Javascript
React 组件转 Vue 组件的命令写法
Feb 28 #Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 #Javascript
Vue中this.$router.push参数获取方法
Feb 27 #Javascript
angularJs-$http实现百度搜索时的动态下拉框示例
Feb 27 #Javascript
angularjs数组判断是否含有某个元素的实例
Feb 27 #Javascript
You might like
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php基于自定义函数记录log日志方法
2017/07/21 PHP
php实现的统计字数函数定义与使用示例
2017/07/26 PHP
PHP实现的链式队列结构示例
2017/09/15 PHP
Thinkphp 框架扩展之行为扩展原理与实现方法分析
2020/04/23 PHP
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
JavaScript 对象链式操作测试代码
2010/04/25 Javascript
js/jQuery对象互转(快速操作dom元素)
2013/02/04 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
第十篇BootStrap轮播插件使用详解
2016/06/21 Javascript
浅谈javascript运算符——条件,逗号,赋值,()和void运算符
2016/07/15 Javascript
javascript实现简单的可随机变色网页计算器示例
2016/12/30 Javascript
JavaScript Base64 作为文件上传的实例代码解析
2017/02/14 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
Vue内容分发slot(全面解析)
2017/08/19 Javascript
vue-resouce设置请求头的三种方法
2017/09/12 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
vue2配置scss的方法步骤
2019/06/06 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python两种遍历字典(dict)的方法比较
2014/05/29 Python
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
python不相等的两个字符串的 if 条件判断为True详解
2020/03/12 Python
python基于socket函数实现端口扫描
2020/05/28 Python
基于python 将列表作为参数传入函数时的测试与理解
2020/06/05 Python
python使用Windows的wmic命令监控文件运行状况,如有异常发送邮件报警
2021/01/30 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
网站美工岗位职责
2014/04/02 职场文书
留学推荐信范文
2014/05/10 职场文书
爱心捐助倡议书
2014/05/19 职场文书
擅自离岗检讨书
2014/09/12 职场文书
学生退学证明
2015/06/23 职场文书
单位领导婚礼致辞
2015/07/28 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS