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/
路径段
解决方案:
- 修改图片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)
问题原因:
- 服务器网络环境限制:服务器无法正常访问外部网站 ac.bit.edu.cn
- 网络延迟问题:服务器到目标网站的网络延迟较高,30秒超时不够
- DNS解析问题:可能存在DNS配置问题
- 防火墙限制:服务器出站规则可能阻止了对目标域名的访问
解决方案:
-
创建了改进版本的URL抓取函数 (
backend/scrape_url_improved.py
)- 增加DNS解析检查
- 实现重试机制(最多3次重试)
- 延长超时时间(连接30秒,读取90秒)
- 添加详细的错误日志
- 临时禁用SSL验证避免证书问题
-
创建了网络诊断工具 (
backend/network_diagnostic.py
)- DNS解析测试
- TCP连接测试
- HTTP请求测试
- 系统网络配置检查
- 自动生成解决建议
使用方法:
# 进入后端目录
cd backend
# 激活conda环境
conda activate fast-dashboard-env
# 运行网络诊断工具
python network_diagnostic.py
# 或者在main.py中集成改进版本的抓取函数
建议的部署检查项:
- 检查服务器DNS配置
- 确认防火墙出站规则
- 测试到目标网站的网络连通性
- 考虑配置代理服务器
- 检查云服务器安全组设置
环境配置
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
访问地址
- 本地访问: http://localhost:5173 (前端) | http://localhost:8000 (后端)
- 网络访问: http://您的IP:5173 (前端) | http://您的IP:8000 (后端)
- 当前您的IP: http://192.168.18.108:5173 (前端) | http://192.168.18.108:8000 (后端)
防火墙配置
如果其他设备无法访问,请确保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
Languages
Vue
61.8%
Python
34.9%
CSS
1.8%
Batchfile
0.9%
JavaScript
0.3%
Other
0.2%