4.Static_File.md

last update: 2025-06-07

在 FastAPI 中,若要提供前端可存取的靜態資源(如圖片、CSS、JavaScript 等),可透過 StaticFiles 模組實現。靜態檔案通常會放在如 public/static/ 的資料夾中,並在應用啟動時掛載。


使用 StaticFiles 掛載靜態目錄

1. 建立資料夾(例如 public)

📁 public/
 ├── logo.png
 └── style.css

2. 在主程式中掛載(通常放在所有路由設定的最下方):

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 的意義:

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 文件頁。

Last updated