解决 Hexo 博客部署在 Cloudflare 和 Vercel 上时区错误问题
起因
本博客的永久链接设置为时间组合方式,并且 Hexo 的时区已经设置为 Asia/Shanghai
:
但突然发现 cloudflare 部署后的文章 url 中的时间与本地竟然不一致,发现整整相差 8 个小时,这一般是由于时区设置导致的。而 Hexo 的时区已经设置为东 8 区 Asia/Shanghai,说明问题出在 cloudflare 上。
原因
hugo、astro 等静态站点工具通过 Cloudflare Pages 编译时使用 0 时区 format 时间,导致显示时间比实际时间早 8 个小时,需要手动设置环境变量 TZ。
修改方法
进入 cloudflare ,Workers 和 Pages ,进入该站点, 设置 -> 环境变量,编辑变量,添加 TZ = Asia/Shanghai
:
Vercel 上的设置方法不同
后来因为 Cloudflare 部署上会产生奇奇怪怪的问题,就迁移到 Vercel 上了,同样也出现了时区问题,按照经验在环境变量中设置 TZ
时,会提示 The name of your Environment Variable is reserved. Please choose another name.
错误,是因为 TZ 在 Vercel 中作为保留字了,应该换一种方式解决,方法参考 Vercel 设置时区 | 璃落 中使用 now.json
的方式。
即在项目根目录下创建 now.json
,写入以内内容:
参考链接
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 天澄拾光!
评论
ArtalkGitalk