diff --git a/backend/app/main.py b/backend/app/main.py index 05ce80e..2bdcf00 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -1,6 +1,10 @@ # backend/app/main.py -from fastapi import FastAPI +import os + +from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware +from fastapi.responses import FileResponse +from fastapi.staticfiles import StaticFiles from app.api.admin import router as admin_router from app.api.auth import router as auth_router @@ -36,3 +40,20 @@ app.include_router(reports_router, prefix="/api/reports", tags=["reports"]) @app.get("/api/health") def health_check(): return {"status": "ok"} + + +# --- Serve frontend SPA --- +_frontend_dist = os.path.join( + os.path.dirname(os.path.dirname(os.path.dirname(__file__))), + "frontend", "dist", +) + +if os.path.isdir(_frontend_dist): + app.mount("/assets", StaticFiles(directory=os.path.join(_frontend_dist, "assets")), name="static") + + @app.get("/{full_path:path}") + async def serve_spa(request: Request, full_path: str): + file_path = os.path.join(_frontend_dist, full_path) + if full_path and os.path.isfile(file_path): + return FileResponse(file_path) + return FileResponse(os.path.join(_frontend_dist, "index.html"))