nuxt.js專案部署到生產環境時其中後端介面寫外網地址不行的問題
最近寫nuxt.js專案部署到生產環境遇到了各種各樣的問題。
這篇文章要寫的就是部署到生產環境時呼叫後端的介面寫外網地址不行的問題及解決方案:
使用pm2手動部署到生產環境,其中呼叫後端的介面外網地址是http://192.144.164.39:****/zhizihua。
但是使用pm2手動啟動專案之後,可以啟動,但是頁面總是會跳到錯誤提示頁面(用於介面有時無資料或呼叫出錯時展示的頁面),首先想到的就是兩個原因:
一、介面無資料。去後臺新增了資料,但是直接在輸入http://anchors.xsn.com.cn/anchor/menu?id=78 返回下圖所示錯誤:
解決思路:
1、在本地連線上生產伺服器,curl http://localhost:3000/anchor/menu?id=78 也是返回這個錯誤。
2、在anchor.js中寫了一個本地介面;直接返回一個json, curl http://localhost:3000/anchor/aa 可以返回正確的結果。這樣就清楚了,應該是在proxy代理的時候出問題了。可是看了我的nuxt.config.js也沒問題啊
modules: [ // Doc: https://github.com/nuxt-community/axios-module#usage ["@nuxtjs/axios", { // baseURL: process.env.BASE_URL || 'http://localhost:3000', } ], '@nuxtjs/proxy' ], /* ** Axios module configuration */ axios: { withCredentials: true, baseURL: conf.axiosBaseUrl, // proxy: true, }, proxy: { "/anchor": { target: conf.backBaseUrl, changeOrigin: true, pathRewrite: { "^/anchor": "" } },
3、修改外網地址為內網地址:http://172.21.16.3:****/zhizihua (172.21.16.3為內網IP),最後通過npm run build npm run pm2居然可以了。但是我仍然不知道是什麼原因,各位大佬知道是什麼原因嗎??
二、在nuxt.js的issus中搜尋說配置一下 firebase,程式碼如下:
build: {
transpile: [/^element-ui/],
extend(config, {
isDev,
isClient,
isServer
}) {
if (isServer) {
config.externals = {
'@firebase/app': 'commonjs @firebase/app',
'@firebase/firestore': 'commonjs @firebase/firestore',
//etc...
}
}
},
cache: true
},
可是我這樣配置了,也安裝了@firebase/app @firebase/firestore 這兩個依賴,依然不行。github連結為:https://github.com/nuxt/now-builder/issues/41
解決方案為:
可是這個在我的專案中不起作用。
三、終級解決方案:
最後還是通過改外網地址為內網地址才得以解決。
if (process.env.NODE_ENV === 'development') {
BASE_URL = 'http://140.143.34.237:****/zhizihua'
axiosBaseUrl = 'http://localhost:3000'
backBaseUrl = 'http://140.143.34.237:****/'
} else if (process.env.NODE_ENV === 'production') {
// BASE_URL = 'http://192.144.164.39:****/zhizihua'
BASE_URL = 'http://172.21.16.3:****/zhizihua' //改192.144.164.39:****為內網172.21.16.3:****
axiosBaseUrl = 'http://anchors.xsn.com.cn'
backBaseUrl = 'http://172.21.16.3:****/'
} else if (process.env.NODE_ENV === 'test') {
BASE_URL = 'http://140.143.34.237:****/zhizihua'
axiosBaseUrl = 'http://xuexi.xsn.com.cn'
backBaseUrl = 'http://140.143.34.237:****/'
}
相關文章
- Vue 移動端專案生產環境的優化Vue優化
- 部署ES + Kibana 到生產環境的筆記筆記
- Nuxt.js中配置生產環境和開發環境APIUXJS開發環境API
- TorchServe 詳解:5 步將模型部署到生產環境模型
- lnmp1.5 環境下部署 Laravel 專案的問題總結LNMPLaravel
- NGINX生產環境反向代理到後端tomcat配置Nginx後端Tomcat
- go專案起步-環境問題Go
- 定位生產環境中介軟體的問題程式碼
- 使用 Docker 開發 PHP 專案(五):生產環境DockerPHP
- vue-element-admin部署生產環境Vue
- 生產環境資料遷移問題彙總
- Arthas 實踐——生產環境排查 CPU 飈高問題
- 藉助Github Page把你的React專案部署到線上環境GithubReact
- 生產環境sqlldr載入效能問題及分析之一SQL
- 生產環境sqlldr載入效能問題及分析之二SQL
- ubuntu搭建nodejs生產環境——快速部署手冊UbuntuNodeJS
- 前端專案無獨立部署環境時,使用shell命令簡化依賴後臺部署的繁雜操作前端
- redmine生產環境搭建
- Django生產環境搭建Django
- mirrord:輕鬆地將流量從生產環境映象到開發環境開發環境
- vcenter6.7生產環境叢集部署及應用
- php部署到nginx時遇到的問題PHPNginx
- 使用 IBM 效能分析工具解決生產環境中的效能問題IBM
- [譯] 教學:如何使用實際按鈕將應用程式部署到生產環境
- 操作生產環境的規範
- 熱部署一般用在測試環境, 生產環境用分散式配置中心熱部署分散式
- 如何解決精益生產專案中出現的問題?
- IOS利用Xcode同時編譯多包(測試環境地址、生產環境地址)iOSXCode編譯
- 記錄MVC專案部署時的CDN快取問題MVC快取
- 輕鬆部署 Laravel 應用 | 《10. 手動部署 - 生產環境的必要優化》Laravel優化
- 已完成的python專案-環境離線部署Python
- Android利用gradle同時編譯多包(測試環境地址、生產環境地址)AndroidGradle編譯
- vue專案打包配置多個測試環境與生產環境,用npm命令打出不同的資源包。VueNPM
- 黑馬部落格——詳細步驟(十)專案功能的實現之開發環境與生產環境開發環境
- 從專案到產品:生產線類比的終結
- 生產環境的 ElasticSearch 安裝指南Elasticsearch
- Vue生產環境除錯的方法Vue除錯
- 記一次最近生產環境專案中發生的兩個事故及處理方法