您的目標是將自訂HTML 檔案(例如custom.html)渲染為FastAPI 應用程式的根路徑。但是,您目前的設定會導致傳回預設的 index.html。
如StaticFiles 上的Starlette 文件中所述:
html - Run in HTML mode. Automatically loads index.html for directories if such file exists.
要解決此問題,您有兩個選項:
1。將 StaticFiles 掛載到不同的路徑:
將您的 StaticFiles 實例掛載到唯一的路徑,例如 /static。這可確保任何以 /static 開頭的路徑都由 StaticFiles 應用程式處理。
app.mount('/static', StaticFiles(directory='static'), name='static')
2.在端點之後定義StaticFiles:
如果您仍想將StaticFiles 掛載到根路徑(/),請在聲明所有API 端點後定義StaticFiles 實例。這可確保端點優先於 StaticFiles。
@app.get('/') async def index(): return FileResponse('static/custom.html')
app.mount('/', StaticFiles(directory='static', html=True), name='static')
html=True 參數可以使用一行程式碼輕鬆提供靜態 Web 內容。但是,如果您需要動態 HTML 檔案和其他 API 端點,請考慮使用範本並將 StaticFiles 安裝到不同的路徑,而不使用 html=True。
以上是如何將自訂 HTML 檔案作為 FastAPI 根路徑?的詳細內容。更多資訊請關注PHP中文網其他相關文章!