在 FastAPI 中,您可以使用 StaticFiles 中介軟體提供靜態文件,包括 HTML。但是,使用 StaticFiles 作為根路徑 (/) 可能會導致意外行為,因為它會自動為根目錄提供 index.html。
根據[Starlette 文件](https://www.starlette.io/static-files/),StaticFiles 有一個html 選項,設定為True 時,如果存在目錄,則會自動載入目錄的index.html。
要在根路徑上正確渲染自訂HTML 文件,請將StaticFiles 掛載到不同的路徑,例如/static:
from fastapi import FastAPI from fastapi.staticfiles import StaticFiles app = FastAPI() app.mount("/static", StaticFiles(directory="static"), name="static")
安裝StaticFiles和定義端點的順序至關重要。如果您在定義根端點後掛載 StaticFiles,則根端點將優先,並將提供自訂 HTML 檔案。
如果您想提供不同的HTML 檔案動態並具有其他端點,建議從StaticFiles 中刪除html=True 選項並使用FastAPI 的[範本](https: //fastapi.tiangolo.com/templates/) 代替。
透過解決 StaticFiles 的排序和設定問題,您可以在根路徑上提供自訂 HTML 檔案而不是 index.html,同時也啟用其他 API 端點。根據您的具體用例仔細考慮 html=True 選項。
以上是如何在 FastAPI 的根路徑中提供自訂 HTML 檔案而不是 index.html?的詳細內容。更多資訊請關注PHP中文網其他相關文章!