靜態檔案¶
你可以使用 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 關於靜態檔案的文件。