IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> Vue打包后文件的接口地址配置的方法 -> 正文阅读

[JavaScript知识库]Vue打包后文件的接口地址配置的方法

背景

常规的vue项目分为本地开发环境和生产环境,在实际项目中,我们在打包之前在.env文件中进行地址配置然后进行打包(vue.config.js文件在开发环境中有效,打包后无效),但在部署过程中地址是不固定的,那么就需要进行动态配置,而不是每次都重新构建代码

第一步:在public中新建config.js文件,用来配置接口地址

?在config.js文件中写入

var ipConfig = {
  baseUrl: 'http://192.168.10.52:9999'
}

第二步:在public下index.html中引入config.js文件

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width,initial-scale=1.0">
  <meta name="referrer" content="no-referrer">
  </meta>
  <link rel="icon" href="<%= BASE_URL %>favicon.ico">
  <title>
    <%= htmlWebpackPlugin.options.title %>
  </title>
</head>

<body>
  <noscript>
    <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled.
        Please enable it to continue.</strong>
  </noscript>
  <div id="app"></div>
  <!-- built files will be auto injected -->
  <script src="./config.js"></script>
</body>

</html>

?第三步:在utils下新建axios.js文件,使用window.ipConfig (全局可用)进行调用,附赠axios封装代码

import axios from 'axios'
import {Message} from 'element-ui'
import store from '@/store'
import router from '@/router'

// 接口错误情况处理
const errorHandler = err => {
  console.log(err, 'err')
  if (err.response.status === 500) {
    Message.error('服务器异常,请联系管理员!')
  }
  return Promise.reject(err)
}
const service = axios.create({
  // process.env.NODE_ENV === 'development' 判断是否为开发环境,常规项目中通过.env文件进行读取
  withCredentials: false, // cookie
  // baseURL: 'http://192.168.10.52:9999/',
  baseURL: window.ipConfig.baseUrl
  // timeout: 100000
})

service.interceptors.request.use(
  config => {
    const token = store.getters['user/token']
    if (token) {
      config.headers.token = token
    }
    if (config.data && config.data.post) {
      if (config.method === 'post') {
        config.data.post = null
        config.params = config.data
      }
    }
    if (config.requestBase) {
      config.baseURL = window.ipConfig.baseUrl
    }
    return config
  },
  error => {
    console.log(error)
    // return Promise.reject()
  }
)

service.interceptors.response.use(response => {
  // application/octet-stream
  // 统一处理数据格式(JSON格式处理-字符串或json对象)
  let resData
  if (typeof response.data === 'string' && /{/.test(response.data)) {
    try {
      resData = JSON.parse(response.data)
    } catch (e) {
      resData = response.data
    }
  } else {
    resData = response.data
  }
  // 如果自定义代码不是20000,则判断为错误.
  if (resData.status && resData.status != 200 && resData.status !== true) {
    MessageReset({
      message: resData.msg || 'Error',
      type: 'error',
      duration: 5 * 1000
    })

    // 50008: 非法token; 50012: 其他客户端已登录; '505': Token 已过期;
    if (resData.status === '505' || resData.status === '506') {
      // to re-login
      store.commit('user/SET_TOKEN', '')
      setTimeout(() => {
        router.replace({ path: '/login' })
      }, 1000)
    }
    return Promise.reject(new Error(resData.message || 'Error'))
  } else {
    return resData
  }
}, errorHandler)

export default service

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-11-01 11:34:06  更:2021-11-01 11:34:22 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 2:42:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码