原文連結,作者 “瀟灑哥老苗”。
不知道還有朋友在使用 printlove.cn/tools/ 這幾個工具沒,因為訪問人數不多,我就給將網站停用了,真實原因是還要花錢續伺服器,所以就…
在停用的幾天,有 1 個朋友說挺好用的,但網站停了。為了不讓這位朋友寒心,網站就重新啟用了。
這次不再購買伺服器,選擇了 Vercel 平臺管理我的網站,原因如下:
支撐 hugo 工具
支援部署 Go 程式碼
免費
如果你對免費部署一個網站感興趣,可以看看我的這篇 Vercel + Notion 建個人部落格。
printlove.cn 網站內容是透過 Hugo 工具生成的,所以先解決此問題。
步驟如下:
如果在開始部署時,出現了報錯,那就需要指定 hugo 的版本。我的專案是遇到了,原因是 vercel 預設的版本存在 Bug。
透過設定環境變數指定版本:
完成了靜態網頁的部署,下來就要搞 API 介面程式碼。
其中除了 json 轉 Go Struct 工具外,其它的工具都是使用 Go 程式碼實現,開始整。
在專案根目錄下建立 api 目錄。
在目錄下建立 tool.go 檔案,這個檔名稱隨意,內容如下:
package api
import (
"net/http"
)
func Tool(w http.ResponseWriter, r *http.Request) {
// todo
}
vercel 平臺會將後面的請求傳遞給該 Tool 函式,這個函式名也隨意,但函式引數必須按照該規則。
- 在專案根目錄建立 vercel.json 配置檔案,負責路由,內容如下:
{
"routes": [
{
"src": "/api/tool",
"dest": "/api/tool.go"
}
]
}
src:介面地址
dest:將請求轉交給
tool.go
檔案處理。重新部署即可。
注意坑:
第一次我在部署 Go 程式碼時,在 api 目錄下建立了好多個 Go 檔案,每一個檔案負責一個介面處理,但在部署時,出現失敗。
原因:多個檔案編譯時佔用的記憶體太大,超過了 vercel 提供的免費記憶體大小(1024M)。因此,我將所有的介面處理都整合在了 tool.go 檔案內,詳細的請看原始碼。
有時候我們想測試本地的程式碼在 Vercel 平臺的部署結果,那提交到 Github 就有問題:“麻煩和不合理”。
下來使用命令進行部署。
1. 安裝
npm i -g vercel
2. 登入 vercel
vc login
vc 是 vercel 的縮寫命令。
3. 開始部署
下來在專案根目錄執行 vc
命令,執行後 vercel 網站就會出現本地專案部署的介面。
如圖 printlove-test 就是我原生程式碼的測試專案。
這篇文章我沒有過多深究 vercel 的太多細節,只是把我使用到的,覺得夠用的東西拿出來分享給大家。
遷移成果:
本作品採用《CC 協議》,轉載必須註明作者和本文連結