Benutzerdefinierte HTML-Dateien im Stammpfad von FastAPI mit StaticFiles bereitstellen
Bei der Verwendung von FastAPI mit StaticFiles kann die Bereitstellung benutzerdefinierter HTML-Dateien von der abweichen erwartetes Verhalten. Die Standardkonfiguration lädt index.html automatisch, wenn eine statische Datei-Middleware im Stammpfad bereitgestellt wird. Es ist jedoch möglich, dies zu überschreiben und eine andere HTML-Datei zu rendern, indem Sie die folgenden Schritte ausführen:
Statische Dateien in einen anderen Pfad einbinden
Um das Problem beim Laden von index.html zu vermeiden , mounten Sie die StaticFiles-Instanz in einem eindeutigen Pfad statt im Stammverzeichnis. Hängen Sie es beispielsweise in /static ein:
app.mount( "/static", StaticFiles(directory="static", html=True), name="static", )
Definieren des Root-Pfad-Endpunkts
Als nächstes erstellen Sie einen benutzerdefinierten Endpunkt, um den Root-Pfad zu verwalten. Dieser Endpunkt gibt die gewünschte benutzerdefinierte HTML-Datei zurück:
@app.get("/") async def index(): return FileResponse("static/custom.html", media_type="html")
Reihenfolge der Definitionen
Die Reihenfolge der Definitionen ist entscheidend. Wenn Sie StaticFiles bereitstellen, bevor Sie den Root-Pfad-Endpunkt definieren, verarbeitet die StaticFiles-Anwendung alle Anforderungen an den Root-Pfad, einschließlich der im Endpunkt definierten.
Beispiel mit der richtigen Reihenfolge
Hier ist ein Beispiel mit der richtigen Reihenfolge der Definitionen:
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", )
Indem Sie diese Schritte befolgen, können Sie benutzerdefiniertes HTML bereitstellen Dateien im Stammpfad Ihrer FastAPI-Anwendung, während Sie weiterhin StaticFiles zum Bereitstellen statischer Dateien verwenden.
Das obige ist der detaillierte Inhalt vonWie stelle ich mithilfe von FastAPI und StaticFiles eine bestimmte HTML-Datei im Root-Pfad bereit?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!