在 Astro 中串接 CMS 是一件非常容易的事情,可以到官方文件查看各種 CMS 的傳接方式。
內容管理系統 (Content Management System)是一種用於編寫和管理網站內容的工具,可以讓幫助撰寫內容與管理網站資產,不同的 CMS 廠商有各式各樣的特色像是:排程發布、編輯器、合作編輯、資產管理……等特色。
傳統 CMS 會從內容管理到資料呈現一套包辦,像是 Wordpress ,但 Astro 只在乎如何呈現內容,因此可以自由地抓取不同來源的資料,於是可以搭配「無頭 CMS」,無頭 CMS(Headless CMS) 實際上就是「只在乎資料的 CMS」,專注在編輯內容的功能並透過 API 來檢索網頁內容,讓開發者有極高的自由度選擇技術與呈現方式。
這樣的模式大幅的分割了前端與內容管理,自由度是其最大的賣點,通常建設好一個無頭 CMS 之後可以一邊專注的產出內容與資料規範,一邊前端則專注於索取資料與呈現內容。
無頭 CMS 實作還可以再分為 Git Based 與 API Driven 兩種類型,差別在於它們如何「管理儲存內容」。Git Based 將內容儲存在類似 Git 這樣的版控系統當中,結構簡單直白,而 API Driven 則是架設專門的伺服器透過 API 動態的檢索和呈現內容,架構更複雜且需要實際的伺服器待命運作。
如果你的網站為輕量級且很少更新的靜態頁面,使用 Git Based 的 CMS 或完全不使用 CMS 是不錯的選擇,但如果你的網站橫跨多個平台或有動態的需求則可以考慮 API Driven 類型的 CMS。
推薦選擇開源可自己架設的 CMS,原因是因為通常到最後都會有供應商綁定(Vendor Lock-in)的問題,但自架通常也會耗費大量的時間,因此依照當下需求評估即可。
本章節了解了 CMS 與 無頭 CMS 的差別,這類管理內容的工具並非必備,你仍然可以透過編寫 Markdown 或原始碼來編輯網頁內容。添加 CMS 對於非開發人員管理網站至關重要,同時也能增進