정적 서비스를 제공하는 FastAPI 애플리케이션에서 StaticFiles를 사용하는 파일의 경우 루트 경로에 대한 요청은 별도의 @app.get("/")에 지정된 사용자 정의 HTML 파일 대신 index.html을 반환합니다.
에 따르면 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')
엔드포인트를 마운트하고 정의하는 순서가 중요합니다.
html=True로 설정하면 웹 콘텐츠 디렉터리를 한 줄로 간단하게 제공할 수 있습니다. 그러나 동적 콘텐츠나 추가 엔드포인트의 경우 템플릿을 사용하고 html=True를 사용하지 않고 StaticFiles를 다른 경로에 마운트하는 것이 좋습니다.
위 내용은 StaticFiles를 사용하여 FastAPI의 루트 경로에 사용자 정의 HTML 파일을 제공하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!