如何使用 StaticFiles 在 FastAPI 的根路徑處提供自訂 HTML 檔案?

Susan Sarandon
發布: 2024-11-10 09:09:02
原創
427 人瀏覽過

How to Serve a Custom HTML File at the Root Path in FastAPI with StaticFiles?

如何在使用 StaticFiles 時在 FastAPI 根路徑中載入與 index.html 不同的檔案?

問題

在提供靜態服務的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')
登入後複製

順序很重要

安裝和定義端點的順序是關鍵:

  • 如果在定義@app.get("/")端點之後掛載StaticFiles,則index.html將不會自動載入.
  • 如果在所有之前掛載StaticFiles其他端點,它將根據其優先權處理所有請求。

html=True選項

設定 html=True 簡化了在一行中提供 Web 內容目錄的流程。但是,對於動態內容或其他端點,請考慮使用範本並將 StaticFiles 安裝到不同的路徑,而不使用 html=True。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板