dev #2

Merged
hera merged 40 commits from dev into main 2026-04-07 22:12:01 +00:00
Showing only changes of commit 34c671f9f3 - Show all commits

View File

@@ -1494,4 +1494,18 @@ def startup():
seed_defaults(data["oils_meta"], data["recipes"])
if os.path.isdir(FRONTEND_DIR):
app.mount("/", StaticFiles(directory=FRONTEND_DIR, html=True), name="frontend")
# Serve static assets (js/css/images) directly
app.mount("/assets", StaticFiles(directory=os.path.join(FRONTEND_DIR, "assets")), name="assets")
app.mount("/public", StaticFiles(directory=FRONTEND_DIR), name="public")
# SPA fallback: any non-API, non-asset route returns index.html
from fastapi.responses import FileResponse
@app.get("/{path:path}")
async def spa_fallback(path: str):
# Serve actual files if they exist (favicon, icons, etc.)
file_path = os.path.join(FRONTEND_DIR, path)
if os.path.isfile(file_path):
return FileResponse(file_path)
# Otherwise return index.html for Vue Router
return FileResponse(os.path.join(FRONTEND_DIR, "index.html"))