腾讯云部署hexo博客
本文基于已经搭建好的 hexo 博客,不再讲解 hexo 博客的搭建。
2026-08 更新:原 Serverless Framework(
scf deploy/ tencent-website 组件)方案已废弃下线,以下为最新的 COS 静态网站托管方案。
🚀 方案概述
- 托管:腾讯云 COS 对象存储静态网站托管(无服务器,按量付费)
- 上传:coscmd 命令行工具,一条命令同步整个站点
- 域名:自定义域名 + 免费 DV 证书
- 备案:域名未备案时,存储桶必须使用海外地域(如新加坡
ap-singapore);已备案域名可用国内地域(如广州)并配 CDN 加速
🚀 部署步骤
✈ 1. 存储桶准备
对象存储控制台 → 创建存储桶(或使用已有桶):
| 配置项 | 值 |
|---|---|
| 名称 | 全小写,如 cokode-blog-1304070044(全局唯一,自动追加 APPID) |
| 地域 | 未备案:新加坡 ap-singapore;已备案:广州 ap-guangzhou |
| 访问权限 | 公有读私有写 |
✈ 2. 开启静态网站托管
存储桶 → 基础配置 → 静态网站 → 开启,索引文档填 index.html
✈ 3. 绑定自定义域名
存储桶 → 域名管理 → 自定义源站域名 → 绑定你的域名,类型选「静态网站」
✈ 4. HTTPS 证书
SSL 证书控制台 → 申请免费 DV 证书(一般一天内签发)→ 在存储桶域名管理中配置 HTTPS
✈ 5. DNS 解析
在域名注册商处把 NS 改为 DNSPod(f1g1ns1.dnspod.net / f1g1ns2.dnspod.net),然后在 DNSPod 添加 CNAME 记录:
⚠️ 关键:CNAME 必须指向「静态网站域名」,不是默认域名!
指向默认cos.地域.myqcloud.com域名时,访问根路径/会返回 403 AccessDenied(根路径需要 ListBucket 权限,而公有读只开放 GetObject)。
| 主机记录 | 记录类型 | 记录值 |
|---|---|---|
| @ | CNAME | 桶名.cos-website.地域.myqcloud.com(如 cokode-blog-1304070044.cos-website.ap-singapore.myqcloud.com) |
✈ 6. 本地安装并配置 coscmd
1 | pip install coscmd |
SecretId / SecretKey 在 API 密钥管理 获取。
✈ 7. 修改 hexo 配置
_config.yml 中把 url 改为你的域名:
1 | url: https://你的域名 |
package.json 的 scripts 中添加部署脚本:
1 | "deploy:cos": "hexo clean && hexo generate && coscmd upload -r -s --delete -y ./public/ /" |
✈ 8. 一键部署
1 | npm run deploy:cos |
上传完成后访问 https://你的域名 验证,DNS 生效一般几分钟到几小时。
🚀 常用命令
| 命令 | 说明 |
|---|---|
npm run deploy:cos |
重新生成并同步上传(日常更新用这个) |
coscmd upload -r -s --delete -y ./public/ / |
只上传、不重新生成 |
coscmd upload -r ./public/ / |
强制全量重传(不用 -s) |
coscmd upload 文件 目标路径 |
上传单个文件 |
coscmd list |
查看桶内文件 |
🚀 踩坑记录
- coscmd 没有
sync命令:用upload -r -s --delete -y实现增量同步(跳过相同文件、删除远端多余文件) hexo c不会执行 clean:c是clean和config的歧义缩写,hexo 直接显示帮助信息,什么都不做;用hexo clean- CNAME 指向默认域名导致 403:必须指向
cos-website静态网站域名(见步骤 5) - 未备案域名不能用国内地域桶绑自定义域名:国内地域绑定自定义域名必须 ICP 备案,海外地域免备案
🚀 参考资料
- 腾讯云 COS 静态网站托管文档:https://cloud.tencent.com/document/product/436/32670
- coscmd 工具文档:https://cloud.tencent.com/document/product/436/10976
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Cokode' Blog!



