2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00
2025-06-09 14:59:40 +08:00

Fast Dashboard 项目

项目概述

智能评估仪表板系统,包含人才评估和工程研究中心评估功能。

技术栈

  • 前端Vue 3 + Element Plus + ECharts
  • 后端Python FastAPI + SQLite
  • 部署Docker + Nginx

近期问题记录

2024年 - 爬虫图片URL路径问题

问题描述:

  • 爬虫返回的图片URL多了一个 /szdw/ 路径
  • 正确地址应该是:https://ac.bit.edu.cn/images/2024-02/f5a28fd026884e328c2280ef42566f6b.png
  • 错误地址返回:https://ac.bit.edu.cn/szdw/images/2024-02/f5a28fd026884e328c2280ef42566f6b.png

问题原因:

  • 在处理相对路径 ../../../原有逻辑从当前URL推断基础路径不准确
  • 导致多拼接了 /szdw/ 路径段

解决方案:

  1. 修改图片URL处理逻辑 (backend/main.py 第610-625行)
    • 简化相对路径处理,直接移除 ../../../ 前缀
    • 统一使用基础URL (https://ac.bit.edu.cn) 拼接图片路径
    • 增加对 ../../../ 路径的处理

修复后的代码逻辑:

if img_src.startswith('../../../'):
    img_relative = img_src[9:]  # 移除 '../../../'
    img_url = f"{base_url}/{img_relative}"
elif img_src.startswith('../../'):
    img_relative = img_src[6:]  # 移除 '../../'
    img_url = f"{base_url}/{img_relative}"
elif img_src.startswith('../'):
    img_relative = img_src[3:]  # 移除 '../'
    img_url = f"{base_url}/{img_relative}"

2024年 - 人才评估接口网络连接问题

问题描述:

  • 人才评估调用接口 /api/scrape-url
  • 本地测试正常服务器部署后报错500
  • 错误信息:HTTPSConnectionPool(host='ac.bit.edu.cn', port=443): Read timed out. (read timeout=30)

问题原因:

  1. 服务器网络环境限制:服务器无法正常访问外部网站 ac.bit.edu.cn
  2. 网络延迟问题服务器到目标网站的网络延迟较高30秒超时不够
  3. DNS解析问题可能存在DNS配置问题
  4. 防火墙限制:服务器出站规则可能阻止了对目标域名的访问

解决方案:

  1. 创建了改进版本的URL抓取函数 (backend/scrape_url_improved.py)

    • 增加DNS解析检查
    • 实现重试机制最多3次重试
    • 延长超时时间连接30秒读取90秒
    • 添加详细的错误日志
    • 临时禁用SSL验证避免证书问题
  2. 创建了网络诊断工具 (backend/network_diagnostic.py)

    • DNS解析测试
    • TCP连接测试
    • HTTP请求测试
    • 系统网络配置检查
    • 自动生成解决建议

使用方法:

# 进入后端目录
cd backend

# 激活conda环境
conda activate fast-dashboard-env

# 运行网络诊断工具
python network_diagnostic.py

# 或者在main.py中集成改进版本的抓取函数

建议的部署检查项:

  1. 检查服务器DNS配置
  2. 确认防火墙出站规则
  3. 测试到目标网站的网络连通性
  4. 考虑配置代理服务器
  5. 检查云服务器安全组设置

环境配置

Python环境

参考 PYTHON_ENV_SETUP_README.md 文档进行环境配置。

启动项目

本地开发启动(仅本机访问)

# 后端启动
cd backend
conda activate fast-dashboard-env
uvicorn main:app --reload

# 前端启动
npm run dev

IP网络访问启动局域网内其他设备可访问

方法1使用便捷启动脚本

# 双击运行根目录下的 start_with_ip.bat 文件
# 或在命令行中运行:
start_with_ip.bat

方法2手动启动

# 后端启动 (监听所有IP)
cd backend
conda activate fast-dashboard-env
uvicorn main:app --host 0.0.0.0 --port 8000 --reload

# 前端启动 (监听所有IP)
npm run dev -- --host 0.0.0.0

访问地址

防火墙配置

如果其他设备无法访问请确保Windows防火墙允许以下端口

  • 端口 5173 (前端)
  • 端口 8000 (后端)

文件结构

fast-dashboard/
├── backend/                    # 后端代码
│   ├── main.py                # 主应用文件
│   ├── scrape_url_improved.py # 改进版URL抓取
│   ├── network_diagnostic.py  # 网络诊断工具
│   └── ...
├── src/                       # 前端代码
│   ├── components/           # Vue组件
│   └── ...
├── README.md                 # 项目文档
└── PYTHON_ENV_SETUP_README.md # Python环境配置文档
Description
No description provided
Readme 19 MiB
Languages
Vue 61.8%
Python 34.9%
CSS 1.8%
Batchfile 0.9%
JavaScript 0.3%
Other 0.2%