Skip to content

[优化建议] 图片加载缓慢:建议迁移至 jsDelivr CDN 或启用国内加速方案 #79

Description

@h1s97x

🐛 问题描述 (Problem Description)

在访问博客文章《小笠原晴香——旧时代的继承者》时(及其他包含图片的文章),发现内嵌图片加载非常缓慢,甚至经常无法显示。

通过浏览器开发者工具分析,发现图片资源直接托管在 hibikilogy.github.io 下:

  • 示例图片地址:https://hibikilogy.github.io/images/2025-02-21/1.png
  • 现象:由于 github.io 域名在中国大陆地区的 DNS 解析不稳定及网络延迟较高,导致图片加载超时或速度极慢,严重影响阅读体验。

💡 建议解决方案 (Suggested Solutions)

为了提升国内用户的访问速度和稳定性,同时兼顾多人协作的便利性,建议考虑以下两种优化方案:

方案 A:使用 jsDelivr 加速现有资源(成本最低,见效快)

jsDelivr 是一个免费且对国内访问优化较好的公共 CDN,它可以代理 GitHub 仓库的内容。
无需更改图片存储位置,只需在生成文章或构建站点时,将图片链接替换为 jsDelivr 格式即可。

修改前:
<img src="https://hibikilogy.github.io/images/2025-02-21/1.png" ...>

修改后:
<img src="https://cdn.jsdelivr.net/gh/hibikilogy/hibikilogy.github.io@main/images/2025-02-21/1.png" ...>


此方案存在一个问题:缓存效率低:图片与源码混合在一起,每次代码构建都会重新处理图片资源,无法利用 CDN 的长期缓存优势。(每次CDN更新大约在几小时到一天不等)

方案 B:建立独立图床仓库 + CI/CD @自动化(最佳长期方案)

考虑到本项目是多人协作,要求每位贡献者手动配置本地上传工具(如 PicGo)会增加贡献门槛。建议采用新的自动化流程:

  1. 新建独立仓库:创建一个专门的公共仓库(如 blog-images)用于集中存储所有图片。
  2. 配置 GitHub Actions:
    • 监听主仓库的 push 或 pull_request 事件。
    • 自动扫描新增/修改的图片文件。
    • 自动将图片上传至 blog-images 仓库。
    • 关键步骤:自动将 Markdown 文件中的本地相对路径(如 ![](./img/1.png))替换为 jsDelivr 加速链接(如 ![](https://cdn.jsdelivr.net/gh/.../img/1.png))。
  3. 优势:
    • 零门槛:贡献者只需像往常一样在本地插入图片并提交,无需任何额外配置。
    • 高性能:图片与源码分离,利用 CDN 强缓存,加载速度极快。
    • 易维护:图片资源集中管理,便于后续迁移或备份。

实施伪代码示例 (GitHub Actions):

jobs:
  upload-images:
    steps:
      - uses: actions/checkout@v4
      - name: Upload & Replace
        run: |
          # 1. 扫描新图片
          # 2. 调用 picgo 上传到独立仓库
          # 3. 正则替换 Markdown 中的图片链接
          # 4. 自动提交修改后的 Markdown 文件

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions