在Cloudflare上部署了一个静态网页博客,过程较为简单,在此记录一下。
1. 前言
想到部署博客,多数人首先想到的是Github Pages,主要是奔着它的免费域名去的,使用特殊的仓库名,最终博客名就可以用:
1 | https://username.github.io |
博客域名带github,看着好看还高级,当初我也是处于这个目的才部署,之前还写过文章介绍,并且这种教程文章网上一搜一大把。
但是,这种地址的博客,每个GitHub账号只能部署一个,部署第二个Pages时,域名就没这么简短好看了,除非再注册新账号。
其实,如果有自己的域名的话,部署静态网站,Cloudflare或许才是更好的选择,而且Cloudflare也有自己的Pages功能,只不过早期是独立的,现在和Workers服务合在一起了,但是不影响使用,主要有以下几个优点:
- 免费的额度足够用,所以和GitHub一样,也是免费的
- 免费使用Cloudflare的全球CDN
- 免费使用网站数据分析
- 免费使用网站的安全防护
- 配置、部署更简单
- 仓库可以设置成private,不必强制公开
当然,如果免费的套餐不够用,也可以开通不同价格的付费套餐。不过对于一个静态网站来说,已经足够用了。
2. 静态网站生成
作者写的是Markdown格式的文档,读者看的是网站,这是不同的东西,所以中间就需要一个转化器。我用的还是之前的Hexo,除此之外,还有Hugo、Jekyll,等等,这类工具大同小异:提供一个框架模版,作者在里面写Markdown格式的文档,然后工具负责将整体生成一个静态网站,读者访问的便是最终生成的网站,而不是作者写的md文档,GitHub在中间充当的是一个网站托管服务。
3. 部署
根据上面所说,可以看到,这里面有两套东西,一套是网站的源码,一套是工具生成出来的网站。GitHub的方式,先通过工具生成网站,然后把生成出来的网站,提交到一个仓库,最后开启并配置仓库的Pages功能。Cloudflare的方式,同样是将生成后的网站提交到仓库,然后会自动触发Workers的部署操作,这是大致流程,下面通过截图详细介绍一下。
3.1 创建Worker
Worker在这里,充当的是网站托管服务器,而每次访问的实际上也是Worker,Worker会根据配置,返回网站内容资源。首先在侧边栏找到功能入口:

然后是按部就班,GitHub的仓库选择之前配置Pages的仓库,其他的保持原样即可



3.2 配置自定义域名

打开刚刚创建好的Worker的域,可以看到Cloudflare给Worker分配的URL,此时,网站便是可以访问的了,使用其中的生产域名即可,但要开启右侧的开关,截图中的开关是关闭的,因为不需要。
我的域名就在用Cloudflare管理,所以点击添加域名后,直接输入子域名,或者直接使用根域名,然后就可以了,只需要一步操作,因为我希望只通过自定义的域名进行访问网站,而不通过Cloudflare分配的Worker URL,所以我关闭了上面的2个开关。
3.3 使用网站源码部署
上面说到,里面有两套东西,一套是网站的源码,一套是工具生成出来的网站,创建Worker时,关联的是GitHub上生成的网站的仓库,实际上,可以直接关联网站的源码仓库。新建一个GitHub仓库,将网站的源码push上去,然后在Worker的设置里,将关联的仓库改成网站的源码仓库,并且增加一条编译命令,

这样一来,在执行部署命令前,都会先执行编译命令,来生成静态网站,Worker会自动更新Pages配置,这样再次访问网站时,依旧可以正常访问。
其中的构建命令npm run build,执行的是网站源码仓库下的packge.json文件中的命令,如果没有,需要手动添加一下,然后再push到远程仓库,我这里用的是hexo,所以构建命令如下:
1 | { |