Dans une application FastAPI qui sert des fichiers statiques fichiers utilisant StaticFiles, la requête au chemin racine renvoie index.html au lieu d'un fichier HTML personnalisé spécifié dans un @app.get("/") séparé.
Selon le Documentation Starlette pour StaticFiles :
html - Exécuté en mode HTML. Charge automatiquement index.html pour les répertoires si un tel fichier existe.
Pour résoudre ce problème, montez l'instance StaticFiles sur un chemin différent, tel que /static, au lieu de / (chemin racine), comme illustré ci-dessous :
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')
L'ordre de montage et de définition des points de terminaison est crucial :
Le paramètre html=True simplifie la diffusion d'un répertoire de contenu Web sur une seule ligne. Cependant, pour le contenu dynamique ou les points de terminaison supplémentaires, envisagez d'utiliser des modèles et de monter StaticFiles sur un chemin différent sans utiliser html=True.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!