GitHub Pages 部署和访问速度极慢,并且如果不使用 CDN 或主动提交,国内搜索引擎无法爬取相关内容。在寻找替代品的过程中,我尝试了腾讯云的「静态网站托管平台」,自觉体验良好,价格也比较合理,对于简单的静态网站而言,它或许是国内 GitHub Pages 一个不错的替代品。
这个平台的本质是对象存储 + CDN,并针对静态网站进行一些优化。使用腾讯的 COS 也能看到搭建静态博客的选项。然而不如在「静态网站托管平台」上方便。
一、必要准备
- 已实名的腾讯云帐号;
- 已备案域名:「静态网站托管平台」自带域名,但有访问频率限制。
- 本地环境:Nodejs
二、开通服务
登录腾讯云账户后,访问此网址:https://console.cloud.tencent.com/tcb/hosting
点击开始使用后,根据提示创建新环境。一般来说,等待三分钟即可创建完成。腾讯云有首个环境送存储容量和访问流量的活动,可以用于网站第一个月的测试。「静态网站托管」服务目前是按量计费,流量每 GB 0.21 元,容量是每 GB 每天 0.0043 元。对于访问量不高,网站体积不大的产品文档或者个人博客而言还算便宜。如果访问量大的话,也有相应的流量包可供选择。
等到网页出现详细的管理页面,静态网站托管服务就已经开通完成,点击默认域名即可访问。下图第二个红色方框内可以操作网站文件的上传。
三、基本配置
进入「基础配置」,更换域名。默认给的域名识别度不高,并且有访问频率限制。可以在「自定义域名」出进行更改域名的操作。绑定的域名必须已经备案,若有 SSL 证书,则应当先在 SSL 控制台上传。将系统返回的 CNAME 域名写入 DNS 服务商内即可完成绑定。
在自定义域名栏的下方,「路由配置」主要是设置错误代码返回的页面。例如将 404 错误代码绑定到 404.html 上:
四、个人博客自动化部署
登录官网上传文件虽然简单,但对于频繁更新的个人博客而言还是太过麻烦。借助腾讯云的命令行工具,可以将这一过程简单化。
安装 Nodejs 后,使用npm i -g @cloudbase/cli
,腾讯云开发的命令行名称 是 tcb
,可在安装后输入tcb -h
测试是否安装完成,遇到问题也能从tcb -h
获得帮助。
首先,使用tcb login
在弹出的窗口给命令行工具授权。 然后,在云开发面板中获得环境 ID。最后,我们就能用tcb hosting deploy <filepath> [remotepath] -e <env_id>
直接将本地静态网页部署到腾讯云了。
以 Hexo 为例,假设在 D:/Blog 处已经有一个 Hexo 本地库,现需要每次生成博客自动上传到腾讯云。可以编写下面这个简单的 ps 脚本。将脚本加入计划任务便能定时静默运行。
cd D:/Blog #进入博客根目录
hexo clean
hexo g --slient #生成文件
cd D:/blog/public #进入静态文件目录
tcb hosting deploy ./ -e {env_id} #上传, remotepath 默认为根目录
exit #退出
五、产品文档自动化部署
对于需要多人协作、依赖版本管理系统的产品文档而言,GitHub 等托管平台非常必要。这时,可以通过 腾讯云开发官方的 GitHub Action 实现自动部署。
云托管上传 GitHub Action 链接在这里。使用这个 Action,需要事先在 GitHub 项目中配置三个密钥。环境 ID 的获得参考第三节。另外,我们还需要访问腾讯控制台创建 API 密钥 ID 和 Key。将这三个密钥按照下图保存在 GitHub 项目设置中:
之后,参考官方说明编写 GitHub Action,这里放上一段简单的示例,来自:
binggg:比快更快,Github Action + 云开发部署静态网站zhuanlan.zhihu.comname: Deploy to Tencent
on: [push] #当推送时,执行任务
jobs:
deploy:
runs-on: ubuntu-latest
name: Tencent Cloudbase Github Action
steps:
- name: Checkout #检查
uses: actions/checkout@v2
- name: Deploy static to Tencent CloudBase #上传
id: deployStatic
uses: TencentCloudBase/cloudbase-action@v1.1.1
with:
secretId: ${{ secrets.SECRET_ID }} #调用 GitHhub 存储的密钥
secretKey: ${{ secrets.SECRET_KEY }}
envId: ${{ secrets.ENV_ID }}
staticSrcPath: build #静态文件目录
官方给的 GitHub Action 是全量上传,如果产品文档数量多的话,每次全量上传将花费大量的时间。如果有增量上传需求的话,可以考虑印记中文文档部署工具,可能体验更佳。
外部链接
- 腾讯云:静态网站托管使用指南
- 腾讯云:云开发产品定价
- 腾讯云:CloudBase CLI 使用指南
本文首发自:腾讯静态网站托管平台使用指南 - 数字生活日志