您自己的靜態 URL 縮短器 ⚡️
發佈在 Github Pages 上的靜態網站產生器現在非常流行。但是靜態 URL 縮短器(更不用說生成器)怎麼樣,它允許您根據靜態檔案重定向 URL?
通常,開發人員最終會為此設定一個具有重定向的伺服器(不是靜態的)。這就是 URLZap 的用武之地。
與靜態網站產生器類似,但針對 URL
隨身攜帶(無論是否縮短)網址
可與 Github 頁面一起使用
無需運行伺服器或設定 HTTP 301 重定向
範例項目: brunoluiz/_
您可能會問自己:如果沒有伺服器,這是如何完成的?好吧,答案就在於<meta http-equiv="refresh" />
。它作為 HTTP 301(重定向)狀態代碼工作,但它是在客戶端完成的。 w3c 網站上有更多解釋。
基於包含所需路徑和 URL 的config.yml
, urlzap
將建立使用元刷新標記的index.html
檔案。作為 HTTP 301,它並不完美,但也相當接近。其他靜態網站產生器(例如 Hugo)也使用類似的策略。
一個例子是:
路徑: './links' # 預設為 './' urls: google: https://google.com 工具:github:https://github.com
映射中的每個鍵將會對應到{.path param}/{key}
路由,重定向到{value}
。這將產生以下內容:
- links/ - google/ - index.html (contains redirect) - tools/ - github/ - index.html (contains redirect)
例如,這些檔案可以上傳到 Github Pages,不需要任何伺服器。 在brunoluiz/_
上,您可以看到範例config.yml
並在gh-pages
分支中查看輸出
檢查版本部分以獲取更多信息詳細信息
使用brew
來安裝它
brew tap brunoluiz/tap brew install urlzap
使用前面的 YAML 範例:
路徑: './links' # 預設為 './' urls: google: https://google.com 工具:github:https://github.com
urls
:所需的 URL 映射,遵循{key}:{redirect URL}
模式
path
:輸出路徑
若要產生靜態文件,請執行urlzap generate
。
您很可能最終會將 Github Pages 與此工具一起使用。如果是這樣,也許使用它並獲得其好處的最佳方式是透過 Github Actions。前往brunoluiz/urlzap-github-action
了解有關如何安裝它的更多詳細信息,包括生成和部署。
️ 您可能需要在儲存庫中手動啟用 Github Pages!更多詳細資訊請參閱 Github Pages 指南
如果 Github Actions 不適合您,請嘗試以下手動流程。
啟用 Github Pages 並設定靜態 HTML 檔案所在的分支。更多詳細資訊請參閱 Github Pages 指南
設定你的config.yml
提交並推送到main
簽出您的 Github Pages 分支(通常是gh-pages
)並運行git reset --hard origin/main
(這會將 HEAD 重設為master
)
運行urlzap generate
提交並推動
以下腳本遵循上述步驟中的說明:
#!/bin/bash# 新增、提交並推送您的變更git add config.yml git commit -m 'chore: update config.yml'git push -u origin main# 使 gh-pages 分支與 maingit checkout gh-pages 相同 git reset --hard origin/main# 產生檔案urlzap 產生# 新增、提交並推送產生的檔案git add --all git commit -m 'chore: 更新 HTML 檔案' git push -u origin gh-pages --force