vue部署包可配置后臺(tái)接口地址的方法
有時(shí)候一個(gè)部署包可能要應(yīng)用于不同服務(wù)器,這就需要頻繁更換后臺(tái)地址。
由此引申出了部署包可直接配置后臺(tái)地址的需求,這樣就不需要頻繁打包了。
方法
1. public 新增 config.js 文件(會(huì)被惡意修改地址,不安全)
public 文件夾下的文件是不會(huì)被打包
// public/config.js window.CUSTOM_CONFIG = { BASE_URL: 'http://localhost:9001', // 后臺(tái)接口地址 }
同個(gè)文件夾下的index.html
文件的head
標(biāo)簽內(nèi)引入config.js
<script src="<%= BASE_URL %>config.js" type='text/javascript'></script>
然后在需要的地方引入,如 axios 封裝的request.js
文件:
const config = { baseURL: window.CUSTOM_CONFIG.BASE_URL, // 引入 config.js 的配置 timeout: 550000, } service = axios.create(config);
2. public 新增一個(gè) json 文件存放地址
// config.json { "BASE_URL": "http://localhost:9001" }
然后在 axios 封裝的request.js
文件下通過XMLHttpRequest
獲取
(網(wǎng)上有一些是直接用axios
獲取,但是我這里要同步操作,不然還沒返回?cái)?shù)據(jù)代碼已經(jīng)執(zhí)行到下面去了,只能用XMLHttpRequest
來獲?。?/p>
// request.js let xmlhttp = new XMLHttpRequest(); xmlhttp.open('get', './config.json', false); xmlhttp.send(null); let BASE_URL = JSON.parse(xmlhttp.responseText).BASE_URL; let service = {}; const config = { baseURL: BASE_URL, timeout: 550000, } service = axios.create(config);
但是這樣瀏覽器會(huì)出現(xiàn)提示,搜了一下說這個(gè)不會(huì)有什么影響?(強(qiáng)迫癥可能會(huì)看著不爽)
出現(xiàn)的問題
神奇的是根據(jù)上一篇文章“vue項(xiàng)目部署到IIS”部署到另一臺(tái)服務(wù)器的時(shí)候,居然失敗了!顯示“跨域”。搜了好久發(fā)現(xiàn)好多文章都是一樣的設(shè)置,后面讓后臺(tái)加了跨域的設(shè)置才成功了!
然后另一個(gè)問題出現(xiàn)了?。?!
用ip地址訪問的時(shí)候,后臺(tái)接口地址還是顯示localhost
,不會(huì)自動(dòng)切換到ip訪問地址。
解決方案: 如果 ip 地址訪問的時(shí)候,要將config.json
里面的后臺(tái)接口地址改成 ip 訪問的地址才可以(這樣不管是localhost還是ip地址都可以訪問到)
個(gè)人猜測(cè): 出現(xiàn)這樣的原因是從json
文件里獲取的是字符串,地址相當(dāng)于寫死了,不會(huì)自動(dòng)匹配成相應(yīng)的IP地址(個(gè)人見解,歡迎指正?。?/p>
到此這篇關(guān)于vue部署包可配置后臺(tái)接口地址的文章就介紹到這了,更多相關(guān)vue配置后臺(tái)接口地址內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue基礎(chǔ)ESLint?Prettier配置教程詳解
這篇文章主要介紹了vue基礎(chǔ)ESLint?Prettier配置教程詳解,本文使用VsCode?+?Vue?+?ESLint?+?Prettier?實(shí)現(xiàn)代碼格式規(guī)范?+?保存自動(dòng)修復(fù)代碼js+vue2022-07-07Nuxt.js實(shí)現(xiàn)一個(gè)SSR的前端博客的示例代碼
這篇文章主要介紹了Nuxt.js實(shí)現(xiàn)一個(gè)SSR的前端博客的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09Vue項(xiàng)目中使用iView組件庫設(shè)置樣式不生效的解決方案
這篇文章主要介紹了Vue項(xiàng)目中使用iView組件庫設(shè)置樣式不生效的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09解決vuejs項(xiàng)目里css引用背景圖片不能顯示的問題
今天小編就為大家分享一篇解決vuejs項(xiàng)目里css引用背景圖片不能顯示的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-09-09