volantis-x/hexo-theme-volantis

【建议】:使用 Cloudflare Pages 构建全球 CDN 加速

Tikas opened this issue · 10 comments

Tikas commented

检查清单

  • 已经搜索过,没有发现类似 issue。
  • 已经阅读 hexo 官方文档,未发现原生支持。

需求描述

起因

这几天看到 Issues 里提问了多个关于 Jsdelivr CDN 失效的问题,加上很早之前也发生过失效问题,影响比较大,在这构思出一个可行的 优 (白) 雅 (嫖) 方式。

#759 | #868 | #867

灵感

由于本人一直都是使用 Cloudflare Pages,Cloudflare 的稳定是有目共睹的,虽然在我们的区域里成为了减速云,但是多数也都是能正常访问的。

由于其本身并没有限制流量,用它来作为静态 CDN 是一个可行的方案。

食用方法

  • 创建 github 静态资源仓库
  • Cloudflare Pages 关联静态资源仓库
  • 构建配置(在【设置】-【构建与部署】里设置):
    • 构建命令:exit 0
    • 构建输出目录:/
    • 根目录:/
    • 拉取请求上的版本注释:已启用

可以为 github 静态资源仓库做一个 index.html 去链接这些 css 和 js 资源

其他参数不用修改,当然,如果想要更高级玩法,请自行研究哈。

示例

可以参考我的这个小小项目:

https://web-1ny.pages.dev/

静态链接请参考下面的【参考链接】

补充

Cloudflare 由于被玩坏的因素,可能部分地区会无法正常访问,但是,此方法能解决大部分地区的 Jsdelivr CDN 失效的问题。

参考链接

未绑定域名的链接示例(Cloudflare Pages 自带的)https://web-1ny.pages.dev/kitivi.css

如果只是为了解决 Jsdelivr CDN 失效的问题而使用 Cloudflare Pages 的话,我觉得没有这个必要

Tikas commented

这个可以配置出来让人选择,其实放在站内引用最好,当然,一些人又想要免费 cdn 的,可以选择,毕竟 CF 是不限流量的

so1ve commented

完全没必要

Tikas commented

真的是完全没必要吗?

我再次思考,任何事物,先分析优缺点:

  • 优点:

    • jsDelivr CDN 已经出现多次无法正常访问了(非 jsd 原因),Cloudflare Pages 会分发到全球上百个边缘节点,而 CF Pages 没有流量限制,拿它做 cdn 真的是可行的。

    • 还可以为二级域名定义一个如:cdn.domain.com 的使用场景,对于需要使用 cdn 的小伙伴,可以选择。

    • 速度上 CF 的边缘节点多数会比 jsDelivr CDN 好一些

  • 缺点:

    • 对于本身已经使用 CF Pages 的小伙伴,此举多余

    • 自身服务器节点比 CF 的边缘节点更快时,会拖累网站加载速度

    • 版本控制需要自定义目录或在文件名里增加

也许还有其他因素,分析下来,并不是说完全没必要,只能说是因个人的需求场景来决定,如果站点流量大,本身又是使用 JSD 的 CDN ,改换此方法会带来更稳定的 CDN 加速效果

思考并不全面,还望体谅

Tikas commented

好问题,我也不知道

so1ve commented

我建议是有需要的自己去换cdn,没必要在主题里头改

首先的问题是,为什么使用jsd的cdn?

jsd方便,仓库里的东西直接拼接链接就能用,如果jsd再出问题就得考虑迁移到别的cdn了,或者默认都用本地的。

Tikas commented

网络环境导致,更换别的也很难确保不会再出现 JSD 的情况,或许,核心的 css js 真的使用本地的会更稳些

Tikas commented

我建议是有需要的自己去换cdn,没必要在主题里头改

是的,之前标题写错,其实我的本意也是告诉大家,可以使用这个方法,内容已经是尽可能的直白些,以方便使用 JSD 的小伙伴们可以参考此 issues ,尝试自己构建一个依赖于 cf 的 cdn

然而站在开发角度,CF 的并不是理想的,号称减速云可不是白叫的,直接运用在主题里非最佳方案,下次提问题前我会想好主题,再来发表

为这给大家带不便,很是抱歉,让大家见笑了,XDDDD