前言

之前我的博客是部署到 Cloudflare 上的,网页加载速度很慢,在线 ping 响应时间普遍在 200 - 300ms 之间,尤其是每到晚间经常加载不出页面,因此决定将博客从 Cloudflare 迁移至 Vercel。迁移后每次部署仅需几秒明显快于CF,最重要的是访问速度有明显提升, 在线 ping 响应时间普遍在 70ms 左右,vercel 后台显示绝大部分访问请求都被分配到了新加坡的CDN节点。要说 Vercel 有哪些不如 CF 地方,主要就是免费版每个月有 100 G 的流量限制,而 CF 没有流量限制,不过 100G/月 对于个人博客足够了。

出现问题

我的博客使用的 Butterfly 主题,在迁移过程中,遇到了一个问题,就是访问图库的子页面(准确的说是所有使用 gallery-group 标签外挂的子页面)时会跳转到 404 页面,但是访问本地 local:4000 就没有问题。最后发现在访问的 url 后面加上 .html 后缀就能正常访问了。

解决方法

在 hexo 根目录 source 文件中 新建一个 vercel.json 文件,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
{
"rewrites": [
{
"source": "/gallery_1/:example",
"destination": "/gallery_1/:example.html"
},
{
"source": "/gallery_2/:example",
"destination": "/gallery_2/:example.html"
}
]
}

gallery_1gallery_2 替换成你自己使用 gallery-group 标签外挂的文件夹名称,这样每次访问子页面的时候,会自动重映射到带 .html 后缀的页面