from pathlib import Path from flask import Flask, send_from_directory from .config import PROJECT_ROOT from .routes.chat import bp as chat_bp from .routes.faq import bp as faq_bp from .routes.conversation import bp as convo_bp def create_app(): dist_dir = PROJECT_ROOT / "frontend" / "dist" app = Flask( __name__, static_folder=str(dist_dir), template_folder=str(dist_dir), ) # 注册路由 app.register_blueprint(chat_bp) app.register_blueprint(faq_bp) app.register_blueprint(convo_bp) # 前端静态资源 & SPA 回退 @app.route("/", defaults={"path": ""}) @app.route("/") def serve_frontend(path: str): target = dist_dir / (path or "index.html") if target.exists(): return send_from_directory(dist_dir, path or "index.html") return send_from_directory(dist_dir, "index.html") return app