Cnblogs部落格園支援自定義js來美化站點(需要申請JS許可權),可以將主題託管到自己的雲資源或CDN加速節點節點上。
例如我的網站為 www.example.com
(IP或其它host),我將編譯後的資料夾 dist
放到了網站的根目錄。
這樣我可以透過載入 https://www.example.com/dist/simpleMemory.js
來載入主題:
<script type="text/javascript">
window.cnblogsConfig = {
info: {
name: 'userName', // 使用者名稱
startDate: '2021-01-01', // 入園時間,年-月-日。入園時間檢視方法:滑鼠停留園齡時間上,會顯示入園時間
avatar: 'http://xxxx.png', // 使用者頭像
},
}
</script>
<script src="https://www.example.com/dist/simpleMemory.js" defer></script>
當主題需要自定義一些功能,發現不方便除錯js指令碼,要反覆將生產包部署到伺服器,來回操作繁瑣複雜,現可以透過雲開發方式來做除錯。
開發環境 - 使用Codespaces除錯開發
fork倉庫後,如果沒有云資源又想要除錯程式碼,這時候可以嘗試github推出的codespaces雲IDE。
- 在github上建立一個codespaces
control + shift + ~
開啟終端,執行命令語句npm run server
- 切換到埠皮膚, 右鍵連結地址,更改埠可見性為
public
- 開啟連結地址,就能看到
dist
為目錄的站點
- 最後在csblogs部落格設定中,臨時將script指令碼地址替換
在codespaces編譯後,在重新整理部落格園網站就能看到更改後的內容
github codespaces 每個月免費時長為120 core/h,2核數CPU可以使用60h。
打包後dist包部署到伺服器。
生產環境 - 雲伺服器Docker容器化
注意
Cnblogs
是https站點,所以引入第三方資源的站點也必須是https
,詳見https混合內容
1. 申請SSL證照(已有證照跳過此步驟)
-
以ZeroSSL申請證照為例, 皮膚中點選
New Certificate
,輸入IP地址-選擇90天免費證照
-
驗證域名所有權,下載驗證檔案,替換倉庫路徑
./well-known/pki-validation
下的.txt檔案
-
伺服器中拉取倉庫程式碼, 執行
docker-compose up -d
- ZeroSSL點選校驗
2. 安裝證照
- ZeroSSl下載的證照包,需要將模組包
ca-boundle.crt
和併到certificate.crt
中(手動扣過去就行),並替換倉庫ssl
下的證照檔案 - 伺服器拉取最新程式碼,執行
docker-compose up -d --force-recreate --build --remove-orphans