1、在dev.env.js文件中添加配置(开发环境):
'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
NODE_ENV: '"development"',
url_api: '"api"' // 添加的请求接口,键值都可以自定义,
})
2、在prod.env.js文件中添加配置(生产环境):
'use strict'
module.exports = {
NODE_ENV: '"production"',
url_api: '"http://192.168.0.30/server-carApp/"' // 添加的键值对,键开发和生成环境要保持一致,值是打包后上线的地址
}
3、在axios请求文件中,通过process.env.url_api
就可以拿到请求的根接口,
我的请求文件中的设置:
const service = axios.create({
baseURL: process.env.url_api, // 通过process.env.url_api拿到请求的地址
withCredentials: true,
timeout: 60 * 1000
})
我之所以在开发环境中配置url_api
的值为api
,是因为我在config/index.js中配置的跨域代理写的是api,
config下的index.js文件中关于跨域代理的配置
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {
'/api': {
target: 'http://192.168.0.30/server-carApp/', // 后台接口
changeOrigin: true, // 是否开启跨域
// secure: false, // 如果是https接口,需要配置这个
pathRewrite: {
'^/api': ''
}
}
},
。。。。。。
4、同样的,在具体的.vue组件文件中,也可以通过process.env.url_api
拿到根api接口地址,然后可以用字符串拼接,得到想要的完整url请求地址。
例如,在login.vue文件中,有一个图片验证码的地址,
<template>
<img :src="codeImgSrc" alt="图片验证码"/>
</template>
<script>
// 这样根路径就被引入进来了,不用在打包上线的时候在具体的文件中改资源路径
const imgUlr = process.env.url_api + '/main/validate/qrCode?w=300&h=80'
export default {
name: 'Login',
data() {
return {
codeImgSrc: imgUlr,
}
}
}
</script>