Skip to content

靜態檔案

🌐 AI 與人類共同完成的翻譯

此翻譯由人類指導的 AI 完成。🤝

可能會有對原意的誤解,或讀起來不自然等問題。🤖

你可以透過協助我們更好地引導 AI LLM來改進此翻譯。

英文版

你可以使用 StaticFiles 從某個目錄自動提供靜態檔案。

使用 StaticFiles

  • 匯入 StaticFiles
  • 在特定路徑上「掛載」一個 StaticFiles() 實例。
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")
🤓 Other versions and variants
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

app = FastAPI()

app.mount("/static", StaticFiles(directory="static"), name="static")

技術細節

你也可以使用 from starlette.staticfiles import StaticFiles

FastAPI 為了方便開發者,提供與 starlette.staticfiles 相同的介面作為 fastapi.staticfiles。但它其實是直接來自 Starlette。

什麼是「掛載」

「掛載(mounting)」是指在特定路徑下加入一個完整且「獨立」的應用,之後所有該路徑下的子路徑都由它處理。

這與使用 APIRouter 不同,因為被掛載的應用是完全獨立的。主應用的 OpenAPI 與文件不會包含掛載應用的任何內容,等等。

你可以在進階使用者指南中閱讀更多相關內容。

細節

第一個 "/static" 指的是這個「子應用」要被「掛載」的子路徑。因此,任何以 "/static" 開頭的路徑都會由它處理。

directory="static" 指向包含你靜態檔案的目錄名稱。

name="static" 為它指定一個可供 FastAPI 內部使用的名稱。

以上參數都不一定要是 "static",請依你的應用需求與細節調整。

更多資訊

如需更多細節與選項,請參考 Starlette 關於靜態檔案的文件