之前一直将博客托管在 Netlify,近期却发现博客在国内经常出现无法打开的情况,决定将博客迁移到 Zeit Now 。
Now 平台自身提供了 Hugo 部署功能,只需要将博客源码提交到 Now 上,服务端就会自动构建 HTML 代码,这一点与 Netlify 类似。不过 Now 和 Netlify 相比还是有很多不足,比如不支持自定义 Hugo 版本(目前 Now 上的 Hugo 版本为0.58.2)、不支持嵌入自定义代码等。所以如果要部署静态博客,个人还是首推 Netlify。
将博客迁移到 Now 实属无奈之举。在迁移的过程中发现相关资料在互联网上还十分少,此记录希望可以帮助到与我有相同困扰的人。本文仅分享项目配置,适用于有 Now 平台使用经验的人参考,不会涉及到 Now 平台的使用。同时官方文档中也有比较简单的部署说明,可供参考:Create a Hugo Website and Deploy It with ZEIT Now。
项目配置
在项目根目录下新建 package.json
文件,并写入如下配置:
{
"scripts": {
"build": "hugo"
}
}
绑定自定义域名
在网站后台设置的自定义域名不会实时指向的最新的实例,所以需要在配置文件中设置。
在项目根目录新建 now.json
文件,并写入以下配置:
{
"alias": [
"hesay.me",
"www.hesay.me"
]
}
设置 404 页面
当访问不存在的页面时,Now 默认会跳转到自身的 404 页面,如果需要跳转到 Hugo 生成的404页面,则需要在 now.json
中加入以下配置:
{
"routes": [
{
"handle": "filesystem"
},
{
"src": "/(.*)",
"status": 404,
"dest": "/404.html"
}
]
}
部署
Now 目前支持两种方式部署项目:
- 手动运行
now
命令部署; - 绑定 Git 仓库,每次推送代码到仓库后,Now 自动拉取最新代码构建部署。
个人比较推荐并且目前正在使用的也是第二种方式,体验与 Netlify 比较接近。具体方式可以参考官方文档中的 Now for GitHub。