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 相关文章推荐
javascript数组去重3种方法的性能测试与比较
Mar 26 Javascript
IE浏览器中图片onload事件无效的解决方法
Apr 29 Javascript
Jquery操作js数组及对象示例代码
May 11 Javascript
jQuery选择器源码解读(五):tokenize的解析过程
Mar 31 Javascript
js面向对象之公有、私有、静态属性和方法详解
Apr 17 Javascript
JavaScript 数组中最大最小值
Jun 05 Javascript
jQuery使用正则验证15/18身份证的方法示例
Apr 27 jQuery
Angular.JS中的this指向详解
May 17 Javascript
jQuery Position方法使用和兼容性
Aug 23 jQuery
JS实现合并json对象的方法
Oct 10 Javascript
解决layui的使用以及针对select、radio等表单组件不显示的问题
Sep 05 Javascript
Vue的过滤器你真了解吗
Feb 24 Vue.js
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
执行、获取远程代码返回:file_get_contents 超时处理的问题详解
2013/06/25 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
深入解析PHP的Laravel框架中的event事件操作
2016/03/21 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
php检测mysql表是否存在的方法小结
2017/07/20 PHP
利用laravel搭建一个迷你博客实战教程
2017/08/13 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
php读取本地json文件的实例
2018/03/07 PHP
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
60个很实用的jQuery代码开发技巧收集
2014/12/15 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
javascript中$(function() {});写与不写有哪些区别
2015/08/10 Javascript
基于jQuery实现的QQ表情插件
2015/08/25 Javascript
JS简单实现tab切换效果的多窗口显示功能
2016/09/07 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
Vue项目报错:Uncaught SyntaxError: Unexpected token
2018/11/10 Javascript
vue基于Echarts的拖拽数据可视化功能实现
2020/12/04 Vue.js
python实现代理服务功能实例
2013/11/15 Python
python进阶教程之异常处理
2014/08/30 Python
解决Linux系统中python matplotlib画图的中文显示问题
2017/06/15 Python
Tensorflow: 从checkpoint文件中读取tensor方式
2020/02/10 Python
Python AutoCAD 系统设置的实现方法
2020/04/01 Python
如何安装并在pycharm使用selenium的方法
2020/04/30 Python
美国领先的机场停车聚合商:Airport Parking Reservations
2020/02/28 全球购物
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
应届生保险求职信
2013/11/11 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
教师节商场活动方案
2014/02/13 职场文书
教师党员公开承诺书
2014/03/25 职场文书
初中成绩单评语
2014/12/29 职场文书
幼师求职自荐信
2015/03/26 职场文书
公司放假通知怎么写
2015/04/15 职场文书
熟背这些句子,让您的英语口语突飞猛进(135句)
2019/09/06 职场文书
详解Python生成器和基于生成器的协程
2021/06/03 Python
RestTemplate如何通过HTTP Basic Auth认证示例说明
2022/03/17 Java/Android