vue.js打包後放到beego項目中,路由的統一設置
- 2019 年 10 月 7 日
- 筆記
版權聲明:本文為部落客原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。
本文鏈接:https://blog.csdn.net/hotqin888/article/details/101153853
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; } }); } } }