3 min read

Ghost 博客加速教程:手把手教你替换 sodo-search CDN,让搜索功能飞起来!

最近在优化自己的 Ghost 博客时,发现一个比较头疼的问题:站内搜索功能加载速度有点慢,有时候甚至会出现加载超时的情况。一番排查下来,发现问题出在 Ghost 默认使用的 CDN 地址 cdn.jsdelivr.net/ghost/sodo-search 上。

众所周知,jsDelivr 在国内的访问体验确实不太稳定,尤其是网络高峰期,经常会遇到加载缓慢或者连接失败的问题。既然找到了症结所在,那咱们就得想办法解决!

解决方案:替换为国内镜像 CDN

经过一番调研,我发现了一个好用的国内 CDN 镜像服务:cdn.jsdmirror.com。这个镜像站点同步了 jsDelivr 的资源,而且在国内的访问速度要快很多,完美解决了我们的痛点。

下面我就来详细讲讲在不同部署环境下,如何具体操作来替换这个 CDN 地址。

一、Docker 部署方式

如果你是通过 Docker 来部署 Ghost 的话(这也是目前最主流的部署方式之一),那操作起来就非常简单了,只需要修改一个环境变量就行。

找到你的 Docker Compose 配置文件(通常叫 docker-compose.yml),在 Ghost 服务的环境变量配置部分,添加或修改 sodoSearch__url 这个参数:

services:
  ghost:
    image: ghost:5
    environment:
      # 其他环境变量...
      sodoSearch__url: https://cdn.jsdmirror.com/ghost/sodo-search@~1.5/umd/sodo-search.min.js

修改完成后,重启一下容器:

docker-compose down
docker-compose up -d

就这么简单,不用改任何代码,重启后搜索功能就会使用新的 CDN 地址了,速度提升立竿见影!

二、本地部署方式

如果你是本地直接安装部署的 Ghost,那就需要手动修改配置文件了。

找到 Ghost 安装目录下的配置文件 config.production.(如果是开发环境就是 config.development.),用你喜欢的编辑器打开它。

在配置文件中添加或修改 sodoSearch__url 字段:

{
  "url": "https://your-blog-domain.com",
  "server": {
    "port": 2368,
    "host": "127.0.0.1"
  },
  "sodoSearch__url": "https://cdn.jsdmirror.com/ghost/sodo-search@~1.5/umd/sodo-search.min.js"
}

保存文件后,重启 Ghost 服务:

ghost restart

大功告成!现在你的 Ghost 博客搜索功能应该快如闪电了。

效果对比

我自己的博客在替换 CDN 之前,搜索功能加载时间大概在 2-3 秒左右,有时候甚至会超过 5 秒,用户体验相当糟糕。替换之后,加载时间直接降到了 300-500 毫秒,这个提升真的非常明显。

如果你用 GTmetrix 或 PageSpeed Insights 这些工具测试一下,应该能看到明显的性能分数提升。

额外小贴士

  • 版本号要注意:上面的 URL 中使用了 @~1.5 这样的版本范围标识符,这样当 Ghost 更新时可能会自动使用新的补丁版本。如果你想固定使用特定版本,可以把 ~1.5 改成具体的版本号,比如 1.5.0
  • 备份配置:在修改配置文件之前,记得先备份一下,以防改出问题还能快速回滚。
  • 清除缓存:如果你的网站使用了 Cloudflare 或其他 CDN 服务,修改后记得清除一下缓存,确保用户能访问到新的资源。

总结

优化博客性能是个持续的过程,有时候一个小小的 CDN 地址替换,就能带来意想不到的体验提升。希望这篇教程能帮到同样被 Ghost 搜索功能速度困扰的朋友!

如果你在操作过程中遇到什么问题,或者有更好的优化方案,欢迎在评论区留言交流!