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 和離岸的大型專案中您是否遇到任何技術問題或擔心如何解決這些問題?

案例研究