feat(static-mount): integrate frontend (13 pages) into FastAPI app
This commit is contained in:
+12
@@ -14,10 +14,13 @@ from __future__ import annotations
|
||||
import logging
|
||||
from contextlib import asynccontextmanager
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
from fastapi import FastAPI, Request, status
|
||||
from fastapi.exceptions import RequestValidationError
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.responses import JSONResponse
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from sqlalchemy import text
|
||||
from sqlalchemy.exc import SQLAlchemyError
|
||||
from starlette.exceptions import HTTPException as StarletteHTTPException
|
||||
@@ -190,6 +193,15 @@ def create_app() -> FastAPI:
|
||||
app.include_router(tags.router, prefix="/api/v1")
|
||||
app.include_router(dashboard.router, prefix="/api/v1")
|
||||
|
||||
# === Static Files (Frontend) ===
|
||||
# Mount app/webui/ on root AFTER all routers, so /api/v1/* still matches first.
|
||||
# StaticFiles mit html=True servt index.html on `/` und alle .html files direkt.
|
||||
webui_dir = Path(__file__).parent / "webui"
|
||||
if webui_dir.exists():
|
||||
app.mount("/", StaticFiles(directory=str(webui_dir), html=True), name="webui")
|
||||
else:
|
||||
logger.warning("webui directory not found at %s — frontend not served", webui_dir)
|
||||
|
||||
return app
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user