StaticFiles を使用した FastAPI のルート パスでのカスタム HTML ファイルの提供
StaticFiles で FastAPI を使用する場合、カスタム HTML ファイルの提供は、予想される動作。デフォルト設定では、静的ファイルミドルウェアがルートパスにマウントされると、index.html が自動的にロードされます。ただし、次の手順に従ってこれをオーバーライドし、別の HTML ファイルをレンダリングすることは可能です。
StaticFiles を別のパスにマウントする
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", )
次のようにします。手順を実行すると、静的ファイルの提供に StaticFiles を使用しながら、FastAPI アプリケーションのルート パスでカスタム HTML ファイルを提供できます。
以上がFastAPI と StaticFiles を使用してルート パスで特定の HTML ファイルを提供するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。