首頁  >  文章  >  後端開發  >  如何使用 FastAPI 和 StaticFiles 在根路徑上提供特定的 HTML 檔案?

如何使用 FastAPI 和 StaticFiles 在根路徑上提供特定的 HTML 檔案?

Linda Hamilton
Linda Hamilton原創
2024-11-12 05:34:01538瀏覽

How to Serve a Specific HTML File on the Root Path Using FastAPI and StaticFiles?

使用StaticFiles 在FastAPI 的根路徑中提供自訂HTML 檔案

將FastAPI 與StaticFiles 一起使用時,提供自訂可能與預期的行為。預設配置是當靜態檔案中間件掛載到根路徑時自動載入index.html。但是,可以按照以下步驟覆蓋此設定並呈現不同的HTML 檔案:

將靜態檔案安裝到不同的路徑

避免index.html 載入問題,將StaticFiles 實例掛載到唯一路徑而不是根目錄。例如,將其掛載到 /static:

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

定義根路徑端點

接下來,建立一個自訂端點來處理根路徑。此端點將傳回所需的自訂 HTML 檔案:

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

定義順序

定義的順序至關重要。如果您在定義根路徑端點之前掛載 StaticFiles,則 StaticFiles 應用程式將處理對根路徑的所有請求,包括端點中定義的請求。

正確順序的範例

以下是一個具有正確定義順序的範例:

from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles
from fastapi.responses import FileResponse

app = FastAPI()

@app.get("/")
async def index():
    return FileResponse("static/custom.html", media_type="html")

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

透過執行下列步驟,您可以在FastAPI應用程式的根路徑中提供自訂HTML 文件,同時仍使用StaticFiles 提供靜態文件。

以上是如何使用 FastAPI 和 StaticFiles 在根路徑上提供特定的 HTML 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn