https://mp.csdn.net/postedit/88937943

https://mp.csdn.net/postedit/88937727

https://mp.csdn.net/postedit/88937667

https://mp.csdn.net/postedit/88937545

我之前写的几个关于beego中放入打包好的vue.js开发的前后端分离的项目,部署到服务器上。

就是打包后,在vue项目目录里找到dist文件夹,把index.html放到beego的view里,把static里的所有文件和文件夹拷贝到beego项目的static文件下,合并。

vue 接口请求地址前缀本地开发和线上开发设置

上面这个文章写得很好,如果在各个component里将请求地址的前缀统一呢?

文中讲分别将prod.env.js和dev.env.js里增加module.exports = merge(…………

然后到main.js里进行请求地址拦截设置,意思就是请求的时候自动根据项目所处的环境(开发环境还是上线环境——后者即打包环境)分别给予不同的前缀。

注意:

1.vue.js修改config是要重新启动:cnpm run dev。

2.vue.js打包命令:cnpm run build。

到了模板里,this.$axios.post('/api/order_list').——就是前缀加上这个地址了。

开发环境  config/dev.env.js

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./dev.env')
 
module.exports = merge(prodEnv, {
  NODE_ENV: '"development"',
  API_ROOT: '"https://www.dev.com"'  //本地请求前缀
})


线上开发环境  config/prod.env.js

'use strict'
const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
 
module.exports = merge(prodEnv, {
  NODE_ENV: '"production"',
  API_ROOT: '"https://www.prov.com"'   //线上请求前缀
})


在请求之前,组装URL,axios.js——main.js里

import axios from 'axios';
var root = process.env.API_ROOT;
//请求拦截
axios.interceptors.request.use((config) => {
    //请求之前重新拼装url
    config.url = root + config.url;
    return config;
});


页面使用模板:

export default {
    name: 'Order',
    data () {
        return {
            order_list: []
        }
    },
    methods: {
        fetchList: function () {
            this.$axios.post('/api/order_list').then((res) => {
                if(res.result === '0000'){
                    this.order_list = res.data;
                }
            });
        }
    }
}