Topics

使用“后处理 SSR”在现有网站上部分实现 CMS(关于使用 Cloudflare Pages Functions + microCMS 的说明)

  • column

您好,我是 Otsuka,Liberlogic 的 CTO。

即使你让我对这篇文章做些什么……

所以,我想留下一些关于“在现有网站上部分实施内容管理系统”的技术说明。

过去,标准做法是使用 PHP 将逻辑“注入 HTML”,但现在,通过使用 Cloudflare Pages Functions,您可以创建一个更智能、对 SEO 更友好的结构,并且可以被 Google 正确索引。

这次,我将分享如何通过使用 Cloudflare Pages Functions 应用“后处理 SSR”将微型 CMS 集成到使用 Eleventy 构建的静态网站中。

此配置的关键点

在这个项目中,我们使用 Eleventy + Nunjucks 构建前端。与 Astro 将函数封装在项目内部不同,dist/我们采用了一种方法,将动态内容稍后插入到静态 HTML 输出中。

它操作起来出乎意料地简单方便。

1. 我只想在预览环境中应用基本身份验证。

需求是:“我们希望在预览环境中加入身份验证,但希望最大限度地减少生产环境中不必要的 worker 的执行成本。” 因此,我们对预构建处理进行了一些调整。仅在生产构建期间_middleware.js这个过程包括将其删除。

在生产环境中,不需要身份验证,从而在安全性和便利性之间取得平衡,同时最大限度地减少不必要的执行成本。

2. 使用缓存 API 缓存 microCMS 响应。

使用 SSR(服务器端渲染)时,最大的问题之一是每次请求都需要进行 API 调用,从而导致负载和延迟。

那是 Cloudflare 的Cache API我们决定采用这种方法在边缘端缓存响应。缓存的生存时间(TTL)设置为相对较短的5到10分钟。

我们在保持产品新鲜度的同时,确保其卓越的性能。

3. 使用键值对进行缓存清除(重新验证)

尽管 TTL 很短,但更新不能立即反映出来,这给运维团队带来了一些压力。Cloudflare KV我们将其用作控制重新验证过程的存储库。

其原理很简单。

  • 使用microCMS更新文章时会触发webhook。
  • 届时KV值将更新。
  • Pages Functions 使用 KV 值作为触发器来确定是否使缓存失效。

这种设计兼具两者的优点:“借助缓存实现极快的更新速度,以及即时更新”。

概括

我喜欢这种“利用现有静态网站的优势,同时仅使用 Edge 修改必要部分”的方法,因为它提供了高度的操作灵活性。

利用 Cloudflare 的强大功能,重现旧版 PHP 的易用性!虽然炫酷的框架迁移固然不错,但这种“脚踏实地的改进”在实际应用中才是最有用的。

那么。

撰稿人

他是Liberlogic技术部门的骨干。每当有人说“要是能有这样的东西就好了,那该多方便啊!”他总能迅速发挥创造力,为客户创造价值并付诸实践。他沟通能力强,拥有众多忠实客户,是我们公司的宝贵财富,而且他还非常爱猫。

Kakeru先生

Nekoana有限公司 首席技术官 / 首席工程师 / 首席执行官 / 看起来太年轻了

查看这位员工的文章

我们以可靠的团队结构和快速的响应能力而自豪。

在 Liberogic,我们经验丰富的员工积极推动项目进展,这也是我们受到客户高度评价的原因。
我们确保项目经理和主管得到合理分配,以确保整个项目的顺利进行。 我们避免因全额承诺而导致不必要的成本增加,并将资源分配给合适的人员和合适的岗位,并以快速掌握工作内容、创建和提交预算而闻名。

请注意,我们不积极参与SES式的现场工作。

我们支持几乎所有主流的项目管理和聊天工具,包括 Slack、Teams、Redmine、Backlog、Asana、Jira、Notion、Google Workspace、Zoom 和 Webex。

在使用 SES 和离岸的大型项目中您是否遇到任何技术问题或担心如何解决这些问题?

案例研究