Mark Ku's Blog

解決問題

老闆請我協助評估 CMS 系統,讓產品部門維護 FAQ 及產品 Knowledge Base,因為後端開發能量有些限、希望能靠友善的 UI 設定,就能快速的創造出後台維護頁面及前台Api,好讓其他前端同仁串接。

為何採用 strapi

Headless CMS 平台比較及內容編輯介面
我試用了幾套主流幾套 CMS,基於以下理由,首推 strapi 靈活輕巧,適合企業中長期發展,未來也可以移作他用。
使用者 - 界面友善、可以自由調整位置。 管理者 - 資料欄位驗證、權限管理、流程控制。
開發者 - 開源、串接友善,提供 swagger 文件、擴充性( 插件市集 )、提供豐富的接口、本身也是 react 及 node 寫的,對前端開發者相對很友善。

原理

strapi 透過友善的後台 UI 設定,能讓程式產生程式。 Strapi專案API資料夾結構截圖

使用及安裝限制

  • node 版本 '>=10.16.0 <=14.x.x' ( 可以透過 nvm 管理多版本 node )
  • 雲端付費,地端開源永久免費

安裝 strapi

npx create-strapi-app@latest my-project --quickstart

安裝 swagger

cd my-project
npm run strapi install documentation
npm run build // 裝完一定要按 build 才會跑出按鈕

安裝完後,即可以登入後台,但會遇到一些小問題,順便記錄了一下

Api 沒回傳圖片

API 預設是不會傳圖片的欄位,在呼叫 api 的請求參數 populate 參數,額外填寫回傳的圖片欄位 Strapi API 呼叫文章列表設定 populate 參數 Strapi API 回傳圖片欄位 JSON 介面

Api 權限

預設 api 存取是需要帶 token,如果你不需要驗證則可以,到 Setting > USERS & PERMISSIONS PLUGIN > Role > 找到你的 Collection > 並給與 find 和 findOne 權限。 Strapi後台Public角色權限設定,findOne已勾選

Rich Text 圖片無法即時預覽圖片

.env

HOST=0.0.0.0
PORT=1337
APP_KEYS=p285lmxQN6bZ90Dh870eIg,twHIadFFnSgVKyGgzcpnIQ,jgn83CaVHIPPnpSqsZPWGw,s2lTboydFrhkPRHJp4omQw
API_TOKEN_SALT=9LGnsz1zt4UpaKfCCQxEZQ==
ADMIN_JWT_SECRET=l7gG6CTUeK0502ns9FAKkw==
JWT_SECRET=mJg/1OqVkOeCiZcxiQfG5w==
WEBSITE=http://127.0.0.1:1337/

config/server.js

module.exports = ({ env }) => ({
  host: env('HOST', '0.0.0.0'),
  port: env.int('PORT', 1337),
  ------
  url: env('WEBSITE', 'http://127.0.0.1'), 
  ------
  app: {
    keys: env.array('APP_KEYS'),
  },  
});

資料備份

  • 資料庫 - 預設是 sql-lite ,路徑 .tmp/data.db ( 也支援 mysql 及 mongo db )
  • 靜態檔案 - 靜態檔案上傳後都會在 /public/uploads 目錄

功能頁面展示

動態產生後台

Strapi內容類型建構器顯示文章欄位設定
Strapi內容類型建構器顯示文章欄位設定

上傳圖片可以傳多張圖

Strapi內容類型編輯器,設定圖片欄位為多媒體
Strapi內容類型編輯器,設定圖片欄位為多媒體

上傳圖片格式限制

Strapi後台設定圖片欄位允許的媒體格式
Strapi後台設定圖片欄位允許的媒體格式

輸入畫面

Strapi後台建立文章介面,顯示圖片上傳功能
Strapi後台建立文章介面,顯示圖片上傳功能

Layout 動態調整

Strapi後台文章內容類型顯示欄位設定介面
Strapi後台文章內容類型顯示欄位設定介面

WebHook

Strapi後台建立Webhook的設定介面截圖
Strapi後台建立Webhook的設定介面截圖

角色

Strapi後台設定頁面中的角色列表
Strapi後台設定頁面中的角色列表

權限

Strapi後台編輯角色權限設定畫面
Strapi後台編輯角色權限設定畫面

相關連結

ckeditor
strapi provider upload ftp v2

作者

Mark Ku

擁有 10+ 年經驗的資深軟體工程師,現為 AI 應用 Builder,專注於大型平台架構與簡化複雜系統設計,從電商系統到訂閱與收費平台,結合 AI Agent、AI 整合與自動化開發,打造高效率且可持續演進的產品技術基礎。閱讀更多

覺得這篇有幫助?

作者做的免費工具、每日 Podcast 與電子報,都在這裡。

Mark Ku · 本文採用 CC BY 4.0 授權,轉載請註明作者並附上原文連結。

留言

訂閱電子報

訂閱後即時收到新文章通知,不錯過任何技術分享。

提交即表示同意接收電子報,隨時可

熱門文章

View all
Mark Ku
··604

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案

Oracle Cloud 永久免費方案 Linux 主機及固定 IP :0 元打造雲端解決方案
Mark Ku
··471

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南

告別 Postman 收費陷阱!開源 Git 原生 API 測試神器 Bruno 實戰指南
Mark Ku
··329

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略

一款免費開源類似於 Notion 類知識庫系統 — Outline Wiki 佈署與備份全攻略
Mark Ku
··240

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1

打造高效 API 管理平台:從 0 開始部署 Kong Gateway - Part 1
Mark Ku
··235

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調

訓練自己的 AI 語音:硬體門檻、開源模型比較與 LoRA 微調
Mark Ku
··216

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取

在 Ubuntu 上設置 Samba 來共享資料夾,讓 Windows 11 用戶可以存取