跟我學 “Linux” 小程式 Web 版開發(五):遇到的一些坑
在第一篇文章中,我提到,專案的自動部署是放在 now.sh 上,以方便預覽。但出於使用者體驗和速度的考慮,我們選擇了國內的七牛雲作為頁面的承載。不過,七牛畢竟是一個物件儲存,而不是一個專業的靜態託管業務,在使用上遇到了一些坑,還好經過努力都得到了解決。
七牛的 Bucket 名規則
和絕大多數的雲端計算廠商一樣,七牛也使用了 Bucket 來作為儲存的單元。
由於這個專案要掛 Linux.cn 的二級域名,於是我便讓老王建立了一個 Bucket,繫結域名,並通過七牛自帶的許可權控制機制,將其分發給我,讓我來使用。
在我的個人控制檯看到了這個 Bucket:
發現問題
我通過控制檯,手動上傳了生成的檔案後,確認沒有問題,就將相應的功能寫入到 Github Action 的 配置檔案(配置檔案點這裡)中,實現自動的部署。但在部署過程中,屢次報錯,不知道為什麼。在開啟了 DEBUG 資訊後發現,竟然是 Bucket 不存在(點我檢視 CI 的構建資訊)。
解決問題
和老王溝通以後才發現,是七牛的 Bucket 名機制的問題。
在七牛中進行許可權分配的時候,會要求你為 Bucket 設定一個別名,而且名字和已有的名字必須是不同的,這導致我看到的 Bucket 的名和老王建立的 Bucket 名是不相同的。
而我使用的 AK 和 SK 又是讓老王設定在 Github 後臺的 Secrets,Bucket 則是我自己設定的,所以就出現了問題。具體來說,是下面這張圖。
由於我填寫的 Bucket 是我自己看到的,而不是老王那邊真正的 Bucket 名稱,導致在上傳的時候,無法找到 Bucket。在將 Bucket 名稱替換為老王那邊看到的 Bucket 名稱後,問題得到解決。
七牛不支援 Vue Router 的 History 模式
在第二篇文章中,我提到了引入了 Vue 的 History 模式來優化體驗。但是,七牛本身作為一個儲存系統,沒有轉發的功能,也就導致其沒有辦法很好的支援 Vue History 模式。
在經過一番研究後,找到了解決方案,就是將 index 頁面,同時作為 404 頁面,這樣就可以實現從某種意義上的將所有請求都轉發給 Index 頁面。
你需要做的,就是將 index.html
複製一份,並重新命名為 errno-404
,並和其他檔案一同上傳,這樣使用者請求一些不存在的檔案時,會自動將請求轉發給 errno-404
, 又因為這個檔案的內容是索引檔案的內容,所以就可以實現了請求的轉發。
相關程式碼的實現,你可以在 https://github.com/LCTT/tldr.linux.cn/blob/master/.github/workflows/nodejs.yml 這裡找到。
總結
在這篇文章中,介紹了七牛的 Bucket 問題,以及 Vue Router History 模式在七牛下的解決方案。
訂閱“Linux 中國”官方小程式來檢視
相關文章
- 跟我學 “Linux” 小程式 Web 版開發(二):UI 開發LinuxWebUI
- 跟我學 “Linux” 小程式 Web 版開發(一):初始化LinuxWeb
- 跟我學 “Linux” 小程式 Web 版開發(四):引入統計及 Crash 收集LinuxWeb
- [微信小程式]開發中遇到的一些“坑”微信小程式
- 微信小程式開發遇到的那些坑微信小程式
- 小程式 遇到的坑
- wepy+weappx開發小程式遇到的坑以及解決方案APP
- 小程式使用Picker遇到的坑
- 小程式遇到的一些問題
- 小程式開發入坑之旅
- 遇到 MySQL 8.0.11 的一些坑MySql
- golang最近遇到的一些坑Golang
- 小程式字串轉成二維碼遇到的坑字串
- 開發小程式的一些小經驗
- mpvue & 小程式開發過程中的坑Vue
- 使用Golang時遇到的一些坑Golang
- 在JSON中遇到的一些坑JSON
- 記錄--uniapp相容微信小程式和支付寶小程式遇到的坑APP微信小程式
- 使用constexpr時遇到的小坑
- 微信小程式開發中遇到的幾個小問題微信小程式
- 小程式開發,那些我們跳過的坑
- 開發小程式過程中採坑
- 國產Linux音影片聊天程式開發遇到的坑及解決:相互聽不到對方聲音?Linux
- Taro開發小程式填坑筆記(一)筆記
- 小程式開發常見踩坑系列(下)
- 使用vue2+Axios遇到的一些坑VueiOS
- Windows 安裝 Homestead 遇到的一些坑點Windows
- centos下配置nginx遇到的一些基本的坑CentOSNginx
- 小程式開發-mpvue構建小程式專案-1-踩坑Vue
- windows開發環境的一些坑Windows開發環境
- 記錄一次用 ThinkPHP 小程式登陸遇到的坑PHP
- [系列] Go - json.Unmarshal 遇到的小坑GoJSON
- 微信小程式開發需要注意的29個坑微信小程式
- 關於最近開發小程式中踩過的那些坑
- Go Web開發入坑指南GoWeb
- beego ORM 建立模型,生成表。遇到的一些坑。GoORM模型
- 微信小程式開發一些經驗微信小程式
- mpvue開發微信小程式踩坑筆記Vue微信小程式筆記