使用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中文網其他相關文章!