feat: 添加前端静态文件服务
This commit is contained in:
parent
3d62957fed
commit
9cc280a892
|
|
@ -1,5 +1,7 @@
|
|||
from fastapi import FastAPI, Depends, HTTPException, BackgroundTasks
|
||||
from fastapi.middleware.cors import CORSMiddleware
|
||||
from fastapi.staticfiles import StaticFiles
|
||||
from fastapi.responses import FileResponse
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.future import select
|
||||
from typing import List
|
||||
|
|
@ -1140,3 +1142,25 @@ async def update_ai_config(config: LLMConfig):
|
|||
"provider": config.provider,
|
||||
"requires_restart": True
|
||||
}
|
||||
|
||||
|
||||
# 前端静态文件服务
|
||||
FRONTEND_DIR = Path(__file__).parent.parent / "frontend" / "dist"
|
||||
|
||||
@app.get("/")
|
||||
async def serve_frontend():
|
||||
"""服务前端首页"""
|
||||
index_path = FRONTEND_DIR / "index.html"
|
||||
if index_path.exists():
|
||||
return FileResponse(index_path)
|
||||
return {"message": "Frontend not found", "frontend_dir": str(FRONTEND_DIR)}
|
||||
|
||||
@app.get("/{path:path}")
|
||||
async def serve_frontend_paths(path: str):
|
||||
"""服务前端其他路由"""
|
||||
# 先尝试直接文件
|
||||
file_path = FRONTEND_DIR / path
|
||||
if file_path.exists() and file_path.is_file():
|
||||
return FileResponse(file_path)
|
||||
# 回退到 index.html (SPA 路由)
|
||||
return FileResponse(FRONTEND_DIR / "index.html")
|
||||
|
|
|
|||
Loading…
Reference in New Issue