前兩天偶然在 GitHub 發現一個挺有意思的專案,可以不依賴自己的伺服器、資料庫來構建一個短連結服務。自己嘗試了一下,還挺簡單的。這裡記錄一下自己的構建流程,感興趣的小夥伴可以自己嘗試一下。
先決條件#
- 新建兩個 GitHub 倉庫,一個用來做伺服器存儲源碼、提供服務 (url_shortener),一個用來做資料庫存儲連結 (url_shortener_db)
- 註冊一個域名(可選),如果沒有的話,可以直接使用 GitHub pages 的域名 (
username.github.io
)。不過我是用了自己註冊的域名:blog.johan.zone
獲取及配置源碼#
首先,你需要獲取這個服務的源代碼,你可以直接 fork 這個源碼倉庫,當然也歡迎 fork 我的代碼倉庫。
然後,克隆自己的倉庫到本地 (當然,你也可以直接在 GitHub 網頁上操作),修改404.html
文件的GITHUB_ISSUES_LINK
字段,指向自己的url_shortener_db
倉庫,這個倉庫的issues
就是作為存儲你的連結的資料庫:
var GITHUB_ISSUES_LINK =
"https://api.github.com/repos/username/repo-name/issues/";
注意把上面的username
repo-name
替換為自己的用戶名及倉庫名。還有,最後的/
不要漏掉,這是獲取連結的關鍵
配置 GitHub Pages#
接下來就是配置 Github Pages 了,這部分也很簡單。
點擊倉庫的Settings
選項,找到其中的GitHub Pages
部分,然後配置Source
中的分支:
下面的部分根據自己需要選擇:
如果你不使用自己的域名#
- 刪除倉庫中的
CNAME
文件 - 把
404.html
文件中的var PATH_SEGMENTS_TO_SKIP = 0;
改為var PATH_SEGMENTS_TO_SKIP = 1;
- 到這裡就結束了,你可以直接跳到下一部分
如果你用了自己的域名#
- 到你的域名服務商,添加一個 CNAME 解析,域名指向
username.github.io
,注意替換username
為自己的 GitHub 用戶名 - 等待幾分鐘(域名解析生效需要時間,所以最好提前做),再進入到 github pages 部分,鍵入你自己的域名,最好勾選Enforce HTTPS,然後點擊
Save
,刷新頁面,會顯示下面的內容:
- 把
CNAME
文件中的域名更改為你配置好的域名 - 到此,就配置完成了,接下來可以測試一下
測試效果#
-
在你開始作為資料庫的 GitHub 倉庫創建一個 issue,標題就是你需要縮短的連結,其他什麼都不需要做,直接 Submit 就行了。
-
等待一會兒,然後在瀏覽器查詢連結
https://<your-domain>/<issue-no>
。例如:https://tldr.plus/2
,點擊這個連結會跳轉到我的博客。其中的tldr.plus
是我的域名,1
代表 issue 的樓層數。
總結#
如果大家覺得麻煩,也可以使用我搭建的服務,你可以點擊這裡提供連結。
有人在這裡給了一個比較好的解釋,大家可以參考一下。