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 到生產環境的筆記筆記
- Dockers 部署Nodejs環境的ts 專案遇到的問題DockerNodeJS
- 生產環境部署springcloud微服務啟動慢的問題排查SpringGCCloud微服務
- ClickHouse生產環境部署
- Nuxt.js中配置生產環境和開發環境APIUXJS開發環境API
- Flink生產環境常見問題
- lnmp1.5 環境下部署 Laravel 專案的問題總結LNMPLaravel
- go專案起步-環境問題Go
- Windows環境部署專案Windows
- TorchServe 詳解:5 步將模型部署到生產環境模型
- NGINX生產環境反向代理到後端tomcat配置Nginx後端Tomcat
- Flask 生產環境部署(Falsk + uWSGI + nginx)FlaskNginx
- vue-element-admin部署生產環境Vue
- 使用 Docker 開發 PHP 專案(五):生產環境DockerPHP
- windows環境Jenkins部署前端專案WindowsJenkins前端
- vcenter6.7生產環境叢集部署之環境介紹
- Flink生產環境常見問題及解決方法
- Arthas 實踐——生產環境排查 CPU 飈高問題
- 藉助Github Page把你的React專案部署到線上環境GithubReact
- Spring Boot (二)整合Jsp與生產環境部署Spring BootJS
- ubuntu搭建nodejs生產環境——快速部署手冊UbuntuNodeJS
- 企業生產環境Nacos叢集部署示例
- 前端專案無獨立部署環境時,使用shell命令簡化依賴後臺部署的繁雜操作前端
- 已完成的python專案-環境離線部署Python
- 記一次生產環境大面積404問題!
- 03:2020-11-14 vue不同的api地址生產環境和開發環境配置打包VueAPI開發環境
- 【專案場景】請求資料時測試環境比生產環境多花了1秒是怎麼回事?
- 記錄MVC專案部署時的CDN快取問題MVC快取
- php部署到nginx時遇到的問題PHPNginx
- MySQL原理簡介—3.生產環境的部署壓測MySql
- LAPM 環境下部署了一個 Laravel 專案,訪問時一直報 500,求解!Laravel
- 進擊的 Ansible(二):如何快速搞定生產環境 Ansible 專案佈局?
- 前端傳輸檔案到後端報錯問題前端後端
- 如何解決精益生產專案中出現的問題?
- Jenkins部署Web專案到遠端tomcatJenkinsWebTomcat
- mirrord:輕鬆地將流量從生產環境映象到開發環境開發環境
- 運維二 LNMP環境 動靜網站 地址重寫運維LNMP網站