使用vue-element-admin时,
想在项目打包后,也能通过修改配置文件来更改接口地址等信息
然后搜索得知,可以在public中写一个config.js
window.myconfig = {
systemName: '信息管理系统',
requestUrl: 'http://118.xx.xx.77:8000/admin/',
}
然后在index.html中引入
<script type="text/javascript" src="config.js"></script>
之后使用vuex,在getters.js中写
const getters = {
myconfig: () => window.myconfig
}
export default getters
然后在request.js中获取store.getters.myconfig.requestUrl的信息
但是在request.js中的axios.create上边写store是获取不到的,undefined
经过搜索是因为https://blog.csdn.net/weixin_41721295/article/details/121037017 这篇文章说的原因,但是不知道具体怎么改,然后就在request.js中进行了一些愚笨的处理
写了个teste方法,在这里面初始化一下store,然后返回给axios.create使用
import Vue from 'vue'
import Vuex from 'vuex'
import axios from 'axios'
import { MessageBox, Message } from 'element-ui'
import store from '@/store'
import { getToken } from '@/utils/auth'
import publicConfig from '/public/source/js/config'
function teste(){
Vue.use(Vuex)
const aaa = new Vuex.Store({
getters
})
console.log('store',aaa.getters.myconfig.requestUrl)
return aaa.getters.myconfig.requestUrl
}
// create an axios instance
const service = axios.create({
// baseURL: publicConfig.requestUrl || 'http://shuju.me/admin/', // process.env.VUE_APP_BASE_API, // url = base url + request url
baseURL: teste(),
// withCredentials: true, // send cookies when cross-domain requests
timeout: 30000 // request timeout
})
如果有大佬遇到这个问题,并能优雅地解决,麻烦留言,谢谢
标签:vue,undefined,getters,requestUrl,axios,myconfig,import,store From: https://blog.51cto.com/u_15668841/6919279