#!/usr/bin/env python3 """ Hugging Face Spaces File Server Serviert das React Frontend aus dem dist-Ordner fehlerfrei """ import os from pathlib import Path from fastapi import FastAPI from fastapi.staticfiles import StaticFiles from fastapi.responses import FileResponse app = FastAPI() # Der absolute Pfad zum dist-Ordner, in den Vite alles reingebacken hat dist_path = Path(__file__).parent / "dist" # 1. API-Routen oder die Hauptseite IMMER zuerst definieren! @app.get("/") async def serve_frontend(): """Serviert die index.html direkt auf der Startseite""" index_file = dist_path / "index.html" if index_file.exists(): return FileResponse(index_file) return { "error": "Frontend-Build wurde nicht gefunden", "instruction": "Stelle sicher, dass 'npm run build' ausgeführt wurde und der Ordner /app/dist/ existiert." } # 2. Den GESAMTEN dist-Ordner für alle Unterpfade mounten # html=True sorgt dafür, dass er auch dort nach index.html-Dateien sucht if dist_path.exists(): app.mount("/", StaticFiles(directory=dist_path, html=True), name="static") if __name__ == "__main__": import uvicorn # Port 7860 ist Pflicht für Hugging Face, sonst kommt von außen nichts durch! uvicorn.run(app, host="0.0.0.0", port=7860)