在安装完 Ghost 之后,针对中国大陆地区的访问,是有两个可以优化地方:

  • config.production.json
  • ghost_head.js

这两个文件内都有引用一些外部的资源来实现一些功能,不过默认情况下,这些外部资源的可能会导致页面加载缓慢,所以应该稍微给他们做做调整。


config.production.json

这个文件是 Ghost 的配置文件,记录了 Ghost 的一些诸如:端口、邮件、数据库、外部引用资源等等基本信息。文件正常来说就在 Ghost 的根目录下,使用文本编辑器打开之后,可以看到里面有一些外部资源引用的描述。

目前 ghost 默认是使用 cdn.jsdelivr.net 的 CDN 来引用这些外部文件,在 2022 年底之前,这个 CDN 在大陆的响应速度是相当优秀的,不过目前已经是几乎接近不可用的状态了,所以我们先把这些外部引用的链接改到大陆访问正常的 CDN 上。

  1. 把所有 cdn.jsdelivr.net 替换成 fastly.jsdelivr.net
  2. 把 gravatar 服务从默认的替换成 gravatar.loli.net

都只需要改域名就好啦,后面的路径这些都不用修改。下面是我的 config.production.json 外部引用片段,不同版本的 ghost 可能不完全相同。

portal: {
	url: https://fastly.jsdelivr.net/ghost/portal@~{version}/umd/portal.min.js
},
sodoSearch: {
	url: https://fastly.jsdelivr.net/ghost/sodo-search@~{version}/umd/sodo-search.min.js,
    styles: https://cdn.jsdelivr.net/ghost/sodo-search@~{version}/umd/main.css
},
comments: {
	url: https://fastly.jsdelivr.net/ghost/comments-ui@~{version}/umd/comments-ui.min.js,
    styles: https://fastly.jsdelivr.net/ghost/comments-ui@~{version}/umd/main.css
},
gravatar: {
	url: https://gravatar.loli.net/avatar/{hash}?s={size}&r={rating}&d={_default}
}

其实 fastly.jsdelivr.netgravatar.loli.net 的服务器在大陆访问并不是最快的,但是速度不算差,属于中规中矩,同时全球访问速度也很快。如果希望有更快的体验,可以尝试找一下其他的专门对大陆做了优化的 CDN 来替换,又或者直接用自己的服务器来做一个反向代理用来替换外部引用链接,也是可以的。

ghost_head.js

如果在 Ghost 的后台有添加不同等级订阅用户的设置,那么前台页面会载入 Stripe 的 javascript 文件,作用是校验订阅用户的付款相关信息。因为 Stripe 的服务器在大陆访问速度比较慢。如果当下已经在使用 Stripe 收款的话,可以自己做一下相关文件的反向代理,如果暂时用不着 Stripe,可以直接把相关的引用给注释掉。

ghost_head.js 的文件路径一般是在 Ghost 目录下的 current/core/frontend/helpers/ghost_head.js ,可以使用文件编辑器打开,然后搜索并定位到关键词 js.stripe.com ,然后进行修改。

if (
	settingsCache.get('paid_members_enabled')) {
	/* 下面这段改用自己的反向代理,或者注销掉,直接删掉也行 */
	/* membersHelper += `<script async src="https://js.stripe.com/v3/${isFraudSignalsEnabled}"></script>`; */
}

修改完成之后,重启一下 Ghost 程序就可以了,页面的加载速度虽然说不能得到「质的飞跃」,但是速度也不会太差,比默认状态下的速度更快那是肯定的。