date:
updated:

在COS上部署静态hexo博客


本来是打算部署到VPS上,折腾了一通CDN还没配好。最后选择部署到COS上了。

本来的预计方案:写post的仓库上传到github,从服务器pull下来之后hexo g编译,放到nginx的静态文件目录中,然后套一层腾讯云的CDN。但CDN的回源配置有一些神奇,和nginx的一些重定向搅和在一起,折腾了半天没弄好。最后决定使用COS的静态网站解决方案。

首先是在腾讯云COS(对象存储)中建立一个存储桶,并参考 文档 将该存储桶设置为静态网站。然后在CDN中添加入自己的域名,按照要求完成DNS配置,在回源站设置中选择COS回源,类型为静态网站。刚开始Rika没有注意到这里的配置,导致出现必须添加index.html才能访问到的情况。

然后在腾讯云的密钥管理中申请一个密钥,用于完成hexo的自动部署。参考 hexo-deployer-cos 项目。完成配置之后直接使用hexo d便可直接上传到COS中,CDN能否同步刷新尚不确定。似乎不可,需要手动刷新。有解决方案了:

在腾讯云控制台中使用 APIExplorer ,选择内容分发网络-内容管理相关接口-刷新目录,填写你的个人密钥,参数按照右边的参数说明配置即可,可以尝试在在线调用中测试一下发送请求,如果没有问题的话可以选择代码生成,在里面选择自己喜欢的语言(以NodeJS为例)并拷贝下来,在本地新建一个js文件,内容放进去,注意将

1
const tencentcloud = require("../../../../tencentcloud-sdk-nodejs");

中的那一堆../去掉,然后安装依赖
1
npm i tencentcloud-sdk-nodejs --save

然后在package.json中配置运行这个js的脚本即可。甚至可以在IDE中将部署和刷新串联起来,达到一键部署的目的。

又尝试了一下,为了保证最好的效果,可以把clean deployrefresh三个脚本串联,极为舒适。

顺便,我这里还使用了 hexo-translate-title 这个插件,用于将中文的文章标题翻译为英文,对于URL更加友好。当然,机翻凑合看看就行了。


← Prev ChemByRika服务恢复 | Hello World Next →
打赏
支付宝 | Alipay
微信 | WeChat