diff --git a/backend/main.py b/backend/main.py index 73a0c42..e3e0e22 100644 --- a/backend/main.py +++ b/backend/main.py @@ -1,8 +1,10 @@ from contextlib import asynccontextmanager +import os + from fastapi import FastAPI from fastapi.staticfiles import StaticFiles -from fastapi.responses import FileResponse +from fastapi.responses import HTMLResponse from backend.database import engine from backend.routers import health, subreddits, posts, comments, authors, analytics, digests, summaries @@ -28,12 +30,15 @@ app.include_router(summaries.router, prefix="/api/v1") # SPA static file serving (only when frontend is built) -import os +STATIC_DIR = "/app/static" +_index_html = "" -static_dir = os.path.join(os.path.dirname(__file__), "..", "static") -if os.path.isdir(static_dir): - app.mount("/assets", StaticFiles(directory=os.path.join(static_dir, "assets")), name="assets") +if os.path.isdir(STATIC_DIR): + with open(os.path.join(STATIC_DIR, "index.html")) as f: + _index_html = f.read() + + app.mount("/assets", StaticFiles(directory=os.path.join(STATIC_DIR, "assets")), name="assets") @app.get("/{full_path:path}") async def serve_spa(full_path: str): - return FileResponse(os.path.join(static_dir, "index.html")) + return HTMLResponse(_index_html)