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文件下,合併。
上面這個文章寫得很好,如果在各個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;
}
});
}
}
}