Spaces:
Build error
Build error
| from fastapi import FastAPI | |
| from fastapi.staticfiles import StaticFiles | |
| from fastapi.responses import FileResponse | |
| import os | |
| app = FastAPI() | |
| # 1. Monter le dossier 'assets' contenant le JS et le CSS compilés par Vite | |
| # Cela permet d'accéder à /assets/index.js, etc. | |
| if os.path.exists("dist/assets"): | |
| app.mount("/assets", StaticFiles(directory="dist/assets"), name="assets") | |
| # 2. Route "catch-all" pour servir l'application React (Single Page Application) | |
| # Peu importe l'URL demandée, on renvoie index.html, et React gère le routing côté client. | |
| async def serve_react_app(full_path: str): | |
| # Si le fichier demandé existe physiquement (ex: vite.svg, robots.txt), on le sert | |
| file_path = os.path.join("dist", full_path) | |
| if os.path.exists(file_path) and os.path.isfile(file_path): | |
| return FileResponse(file_path) | |
| # Sinon, on renvoie index.html pour que React prenne le relais | |
| if os.path.exists("dist/index.html"): | |
| return FileResponse("dist/index.html") | |
| return {"error": "L'application est en cours de construction ou le dossier 'dist' est manquant."} |