2025-11-07 16:53:52 +08:00

55 lines
1.7 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from flask import Flask, jsonify, send_from_directory
from flask_cors import CORS
import logging
import os
app = Flask(__name__)
# 配置静态文件目录为dist
# 说明:这里指向后端目录中的 dist前端构建产物应复制或输出到此
dist_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'dist'))
app.static_folder = dist_dir
# 为 SPA 提供静态文件与回退到 index.html 的路由
@app.route('/')
def serve_index():
# 返回构建后的前端入口文件
return send_from_directory(app.static_folder, 'index.html')
@app.route('/<path:path>')
def serve_static_or_fallback(path):
# 如果请求的文件存在则直接返回,否则回退到 index.html用于前端路由
file_path = os.path.join(app.static_folder, path)
if os.path.isfile(file_path):
return send_from_directory(app.static_folder, path)
return send_from_directory(app.static_folder, 'index.html')
CORS(app) # 允许跨域访问
# 配置日志
# 确保logs目录存在
logs_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'handlers', 'Rankings', 'logs')
os.makedirs(logs_dir, exist_ok=True)
logging.basicConfig(
level=logging.INFO,
format='%(asctime)s - %(levelname)s - %(message)s',
handlers=[
logging.FileHandler(os.path.join(logs_dir, 'app.log'), encoding='utf-8'),
logging.StreamHandler()
]
)
# 导入并注册蓝图
from routers.rank_api_routes import rank_bp
from routers.article_routes import article_bp
app.register_blueprint(rank_bp)
app.register_blueprint(article_bp)
if __name__ == '__main__':
print("启动主程序服务...")
print("服务地址: http://localhost:8443")
app.run(host='0.0.0.0', port=8443, debug=True)