last update: 2025-06-07
在 FastAPI 中,若要提供前端可存取的靜態資源(如圖片、CSS、JavaScript 等),可透過 StaticFiles 模組實現。靜態檔案通常會放在如 public/ 或 static/ 的資料夾中,並在應用啟動時掛載。
📁 public/
├── logo.png
└── style.css
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
app = FastAPI()
app.mount(
"/public",
StaticFiles(directory="public", html=True),
name="public"
)如此即可透過網址存取靜態資源:
/public/logo.png/public/style.css
當 html=True 被啟用時,若使用者請求的 URL 是資料夾目錄(例如 /public/),FastAPI 會自動尋找並回傳該目錄中的 index.html 作為預設頁面。這對於前端單頁式應用(SPA)或純 HTML 網站特別有用。
| 功能 | 使用方式 |
|---|---|
| 掛載靜態資源路徑 | app.mount("/public", StaticFiles(...)) |
| 存取靜態檔案 | /public/檔名 |
| 搭配 HTML 使用 | <link>, <img>, <script> 引入路徑 |
| html=True 效果 | 自動回傳 /index.html 作為目錄預設頁面(若存在) |
透過 StaticFiles,FastAPI 可有效支援前端靜態內容需求,適合構建含介面展示的網站或 API 文件頁。