From 56a2ff82a537bc5af4d83b773b26a102de98688d Mon Sep 17 00:00:00 2001 From: lhl Date: Mon, 31 Aug 2026 03:15:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(server):=20=E6=8C=82=E8=BD=BD=20StaticFiles?= =?UTF-8?q?=20=E7=BB=9F=E4=B8=80=E6=8F=90=E4=BE=9B=20chat.css=20/=20chat?= =?UTF-8?q?=5Fstate.js=20/=20chat=5Fws.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背景:上一轮把 chat.html 的内联 CSS 拆到 chat.css,并新增 引用,但 app.py 只为 chat_state.js / chat_ws.js 注册了 FileResponse 端点, /chat.css 没有对应路由,浏览器加载返回 404,整个页面无样式。 修复: - app.py 删除 chat_state.js / chat_ws.js 显式端点 - 改用 app.mount('/static', StaticFiles(directory=static_dir)) - chat.html 三处 URL 改为 /static/chat.{css,state.js,ws.js} 优点:未来 chat.js 拆分无需再改 app.py。 验证(serve --fake @ http://127.0.0.1:8000): - GET /static/chat.css -> 200 text/css; charset=utf-8 - GET /static/chat_state.js -> 200 text/javascript; charset=utf-8 - GET /static/chat_ws.js -> 200 text/javascript; charset=utf-8 - GET /chat.css(旧路径) -> 404(已废弃,HTML 中无引用) --- src/genesis/server/app.py | 17 ++++------------- src/genesis/server/static/chat.html | 6 +++--- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/genesis/server/app.py b/src/genesis/server/app.py index d5f3599..f15e9b3 100644 --- a/src/genesis/server/app.py +++ b/src/genesis/server/app.py @@ -17,6 +17,7 @@ from typing import Any from fastapi import FastAPI, File, Form, HTTPException, UploadFile, WebSocket, WebSocketDisconnect from fastapi.responses import FileResponse, HTMLResponse +from fastapi.staticfiles import StaticFiles from pydantic import BaseModel from genesis.inference.factory import build_inference_engine @@ -125,19 +126,9 @@ def create_app( def index(): return chat_html - @app.get("/chat_state.js") - def chat_state_js(): - p = static_dir / "chat_state.js" - if not p.exists(): - raise _error(404, "NOT_FOUND", "chat_state.js 不存在") - return FileResponse(p, media_type="application/javascript") - - @app.get("/chat_ws.js") - def chat_ws_js(): - p = static_dir / "chat_ws.js" - if not p.exists(): - raise _error(404, "NOT_FOUND", "chat_ws.js 不存在") - return FileResponse(p, media_type="application/javascript") + # 静态资源(chat.css / chat_state.js / chat_ws.js / 未来的 chat.js) + # 统一通过 /static/ 访问,避免逐个文件注册 + app.mount("/static", StaticFiles(directory=str(static_dir), html=False), name="static") # ---------- 项目配置 ---------- diff --git a/src/genesis/server/static/chat.html b/src/genesis/server/static/chat.html index f4dc148..27457fe 100644 --- a/src/genesis/server/static/chat.html +++ b/src/genesis/server/static/chat.html @@ -4,7 +4,7 @@ Genesis — 概要设计书自动生成(对话) - + - - + +