1. 程式人生 > 其它 >uniApp 打包H5工程 超詳細(打包-實現跨域-nignx配置)

uniApp 打包H5工程 超詳細(打包-實現跨域-nignx配置)

uniApp 打包H5工程 超詳細(打包-實現跨域-nignx配置)

 

參考文獻:
https://zhuanlan.zhihu.com/p/158100556
https://www.csdn.net/tags/MtTaEgxsNDk5OTAxLWJsb2cO0O0O.html
https://www.jb51.net/article/180961.htm

打包步驟

當前端uniapp寫的專案開發完成的時候,需要將頁面打包出來,生成H5的靜態檔案,部署在伺服器上,通過伺服器連結地址,就可以直接在手機上點開訪問 了。

在網上看了一圈,好像沒有找到十分詳細的教程,這裡稍微詳細的記錄了一下,uniapp打包成H5部署到伺服器教程。

步驟如下:

1:點選高階按鈕,進入到manifest.json的h5配置裡面,根據自己的情況配置一些資訊,我這裡是預設的。()

一定要注意配置執行時候的基礎路徑(下圖紅色框標記的地方),如果出現空白頁面或者靜態檔案404的情況,可能是因為這個路徑沒有配置好。

(多嘴一句,這個執行的基礎路徑,是和編譯之後的靜態檔案的資料夾是一致的,預設是h5,我這裡改名字了,我這裡將靜態檔案h5的資料夾改成了yue-yst-bbdb專案需要,即一般來說就專案名稱)。

2:點選選單欄發行,點選選擇網站-H5手機版,

3:在網站域名這一欄填寫,網站域名,例如www.xxx.com或者你的伺服器的IP地址47.103.XX.XX,(這個地址是你將專案打包之後存放放靜態檔案的地址)。總的來說就是你準備要把這個H5打包後放到的那一臺伺服器的IP

我這裡為了考慮到安全因素,將自己的伺服器地址馬賽克了。

4:點擊發行,控制檯會自動編譯
注意這個不同於vue,編譯完成的檔案不支援本地file協議開啟。不要使用資源管理器直接開啟。直接開啟靜態檔案是看不到東西的。出現以下提示,說明編譯成功 下面有個路徑就是打好的H5包(裡面放了 static+html )

5:找一個工具,連線自己的伺服器,進入到自己的伺服器的根目錄底下。
我這裡用的是Xftp工具。,我在根目錄底下新建了一個yue-yst-bbdb,(即靜態H5的資料夾重新命名了)
總的來說就是:建立一個以專案名(yue-yst-bbdb )的資料夾,然後裡面放入4步驟中的 (static+html )就好啦


好的,這個時候就已經部署成功了。

6:開啟瀏覽器,輸入伺服器ip地址,訪問一下index.html的內容吧
http://19.130.xxx.xxx:8089/yue-yst-bbdb/index.html#/
主機ip和埠號也要注意,這裡是我的主機和埠號,隱藏起來了。

7:注意,這三個地方的路徑名稱一定要一致哦。
1:打包時候的配置的執行的基礎路徑
2:伺服器根目錄底下存放靜態檔案static和index.html
3:瀏覽器裡面訪問的路徑

實現跨域

其實很簡單:以下位置加上

"h5" : {
        "devServer" : {
            "proxy" : {
                //配置代理伺服器來解決跨域問題,uniapp不適用CORS方案和設定JSONP方案
                "/api" : {
                    //對映域名
                    "target" : "http://19.xxx.245.xxx", //測試環境
                    "changeOrigin" : true, //是否跨域
                    "secure" : true, // 是否支援 https 協議的代理
                    "pathRewrite" : {
                        "^/api" : ""
                    }
                }
            }
        }
    }
 

get請求方式:(注意 ”/api“ 這個就是配置的代理==>http://19.xxx.245.xxx)

	uni.request({
		method: "GET",
		url: "/api/way/gate/get-token",
		success: function(res) {
			if (res) {
				console.log("response", res);
				if (res.statusCode == 200) {
					if(res.data.access_token!=undefined && res.data.access_token!=''){
						callbackFunction(res.data.access_token);
					}else{
						failCallback();
					}
				} else {
					failCallback();
				}
			}
		},
		fail: function() {
			console.log("resquest fail");
			uni.showToast({
				icon: "none",
				title: "網路連結異常,操作失敗"
			});
			if (failCallback) {
				failCallback();
			}
		}
	});
 

post請求方式:(注意 ”/api“ 這個就是配置的代理==>http://19.xxx.245.xxx)

uni.request({
			method: "POST",
			header: {
				 'Content-Type': 'application/json',
				 'Authorization':"Basic "+accessToken
			},
			data: params,
			url: "/api"+url,
			success: function(res) {
				console.log("response-post請求-新增", res);
				if (res) {
					if (res.statusCode == 200) {
						console.log("res.data-post請求-新增", res.data);
						console.log("res.data.data-post請求-新增", res.data.data);
						if (res.data.flag == true) {
							callbackFunction()
						} else {
							failCallback();
						}
					} else {
						uni.showToast({
							icon: "none",
							title: "網路連結異常,操作失敗!\n" + res.errMsg
						});
					}
				}
			},
			fail: function() {
				console.log("resquest fail");
				uni.showToast({
					icon: "none",
					title: "網路連結異常,操作失敗"
				});
				if (failCallback) {
					failCallback();
				}
			}
		});
 
  •  

nignx配置

命令如下
先找到你伺服器什麼的nignx的配置檔案位置
一般來說

位置:cd /usr/local/nginx/cofig/sbin 
關閉命令:(到/sbin目錄下執行)./nginx -s stop 
開啟命令:(到/sbin目錄下執行)./nginx
 
  • 1
  • 2
  • 3

配置檔案的配置(和上面的相關的)

最後該專案即徹底部署完結