mirror of
https://github.com/vegu-ai/talemate.git
synced 2025-12-16 03:37:51 +01:00
28 lines
951 B
Python
28 lines
951 B
Python
|
|
import os
|
||
|
|
from fastapi import FastAPI, Request
|
||
|
|
from fastapi.responses import HTMLResponse, FileResponse
|
||
|
|
from fastapi.staticfiles import StaticFiles
|
||
|
|
from starlette.exceptions import HTTPException
|
||
|
|
|
||
|
|
# Get the directory of the current file
|
||
|
|
current_dir = os.path.dirname(os.path.abspath(__file__))
|
||
|
|
# Construct the path to the dist directory
|
||
|
|
dist_dir = os.path.join(current_dir, "talemate_frontend", "dist")
|
||
|
|
|
||
|
|
app = FastAPI()
|
||
|
|
|
||
|
|
# Serve static files, but exclude the root path
|
||
|
|
app.mount("/", StaticFiles(directory=dist_dir, html=True), name="static")
|
||
|
|
|
||
|
|
@app.get("/", response_class=HTMLResponse)
|
||
|
|
async def serve_root():
|
||
|
|
index_path = os.path.join(dist_dir, "index.html")
|
||
|
|
if os.path.exists(index_path):
|
||
|
|
with open(index_path, "r") as f:
|
||
|
|
content = f.read()
|
||
|
|
return HTMLResponse(content=content)
|
||
|
|
else:
|
||
|
|
raise HTTPException(status_code=404, detail="index.html not found")
|
||
|
|
|
||
|
|
# This is the ASGI application
|
||
|
|
application = app
|