在提供靜態服務的FastAPI 應用程式中使用StaticFiles 的檔案時,對根路徑的請求傳回index.html,而不是在單獨的檔案中指定的自訂HTML文件@app.get("/").
根據StaticFiles 的Starlette 文件:
html - 以HTML 模式運行。如果目錄存在index.html,則自動載入該檔案。
要解決此問題,請將StaticFiles 實例掛載到不同的路徑,例如/static,而不是/(根路徑),如下所示:
from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.responses import FileResponse app = FastAPI() app.mount('/static', StaticFiles(directory='static'), name='static') @app.get('/') async def index() -> FileResponse: return FileResponse('static/custom.html', media_type='html')
安裝和定義端點的順序是關鍵:
設定 html=True 簡化了在一行中提供 Web 內容目錄的流程。但是,對於動態內容或其他端點,請考慮使用範本並將 StaticFiles 安裝到不同的路徑,而不使用 html=True。
以上是如何使用 StaticFiles 在 FastAPI 的根路徑處提供自訂 HTML 檔案?的詳細內容。更多資訊請關注PHP中文網其他相關文章!