ETest-Vue-FastAPI/前端错误排查指南.md

314 lines
6.1 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 前端错误排查指南
## 当前错误分析
您遇到的错误包括:
### 1. 404错误 - 头像图片找不到
```
GET http://123.56.98.4:8080/dev-api/profile/avatar/2025/08/01/avatar_20250801085429A353.png 404
```
**原因**:用户头像文件不存在或路径错误
**影响**:不影响功能,只是头像显示不出来
**解决方案**
- 这是正常现象,如果用户没有上传头像或头像文件被删除
- 可以忽略此错误,或者重新上传头像
### 2. WebSocket连接失败
```
GET http://172.17.164.32:8080/sockjs-node/info?t=... net::ERR_CONNECTION_TIMED_OUT
[WDS] Disconnected!
```
**原因**Webpack开发服务器的热重载(HMR)连接失败
**影响**:热重载功能不可用,需要手动刷新页面才能看到代码更改
**解决方案**
1. 检查防火墙设置
2. 检查网络连接
3. 重启开发服务器
4. 如果不需要热重载,可以忽略此错误
### 3. ChunkLoadError - JavaScript代码块加载失败 ⚠️
```
ChunkLoadError: Loading chunk 0 failed.(timeout: http://123.56.98.4:8080/static/js/0.js)
```
**原因**
- 浏览器缓存问题
- 网络连接问题
- 构建文件损坏
- 代理配置问题
**影响**:页面无法正常加载,功能不可用
**这是主要问题,需要解决!**
## 解决方案
### 方案1清除缓存并重新构建推荐
```bash
# 1. 停止前端服务 (Ctrl+C)
# 2. 进入前端目录
cd ruoyi-fastapi-frontend
# 3. 清除缓存和构建文件
rm -rf node_modules
rm -rf dist
rm -rf .cache
# Windows用户使用
# rmdir /s /q node_modules
# rmdir /s /q dist
# rmdir /s /q .cache
# 4. 重新安装依赖
npm install
# 5. 重新启动开发服务器
npm run dev
```
### 方案2强制刷新浏览器
1. **清空缓存并硬性重新加载**
- 打开浏览器开发者工具F12
- 右键点击刷新按钮
- 选择"清空缓存并硬性重新加载"
2. **清除浏览器缓存**
-`Ctrl + Shift + Delete`
- 选择"缓存的图片和文件"
- 点击"清除数据"
3. **强制刷新**
-`Ctrl + F5`Windows
-`Cmd + Shift + R`Mac
### 方案3检查网络和代理配置
#### 检查后端服务是否运行
```bash
# 检查后端是否在9099端口运行
curl http://127.0.0.1:9099
# 或者在浏览器访问
http://127.0.0.1:9099
```
#### 检查代理配置
确保 `vue.config.js` 中的代理配置正确:
```javascript
proxy: {
[process.env.VUE_APP_BASE_API]: {
target: `http://127.0.0.1:9099`, // 确保这是正确的后端地址
changeOrigin: true,
pathRewrite: {
['^' + process.env.VUE_APP_BASE_API]: ''
}
}
}
```
### 方案4重启开发服务器
```bash
# 1. 停止当前服务 (Ctrl+C)
# 2. 等待几秒
# 3. 重新启动
npm run dev
```
### 方案5使用无缓存模式启动浏览器
#### Chrome/Edge
```bash
# Windows
chrome.exe --disable-cache --disable-application-cache
# Mac
open -a "Google Chrome" --args --disable-cache
```
#### Firefox
```bash
# 在地址栏输入
about:config
# 搜索并设置
browser.cache.disk.enable = false
browser.cache.memory.enable = false
```
## 预防措施
### 1. 定期清理缓存
```bash
# 每周执行一次
cd ruoyi-fastapi-frontend
rm -rf node_modules/.cache
rm -rf dist
```
### 2. 使用版本控制
确保代码在Git中有备份
```bash
git status
git add .
git commit -m "添加批量添加样品功能"
```
### 3. 检查依赖版本
```bash
# 检查过时的依赖
npm outdated
# 更新依赖(谨慎操作)
npm update
```
### 4. 使用稳定的网络环境
- 避免使用不稳定的WiFi
- 使用有线网络
- 检查防火墙设置
## 验证修复
修复后,请验证以下功能:
### 1. 基本功能
- ✅ 页面能正常加载
- ✅ 登录功能正常
- ✅ 菜单导航正常
### 2. 入库单功能
- ✅ 入库单列表能正常显示
- ✅ 新增入库单对话框能打开
- ✅ 批量添加样品功能可用
### 3. 对话框功能
- ✅ 点击对话框外部不会关闭
- ✅ 点击关闭按钮能正常关闭
- ✅ 点击取消按钮能正常关闭
## 常见问题FAQ
### Q1: 为什么会出现ChunkLoadError
**A**: 主要原因:
1. 浏览器缓存了旧版本的代码
2. 网络连接不稳定
3. 构建文件损坏
4. 代理配置错误
### Q2: 清除缓存会丢失数据吗?
**A**: 不会。清除的是:
- 浏览器缓存(临时文件)
- node_modules可重新安装
- 构建文件(可重新生成)
不会影响:
- 数据库数据
- 源代码文件
- 配置文件
### Q3: 为什么WebSocket连接失败
**A**: 可能原因:
1. 防火墙阻止了连接
2. 网络配置问题
3. 开发服务器配置问题
**影响**:只影响热重载功能,不影响应用本身
### Q4: 404错误需要处理吗
**A**: 取决于具体情况:
- 头像404可以忽略或重新上传头像
- API 404需要检查后端服务和路由配置
- 静态资源404需要检查文件路径
### Q5: 如何避免这些问题?
**A**: 最佳实践:
1. 定期清理缓存
2. 使用稳定的网络
3. 及时更新依赖
4. 使用版本控制
5. 做好代码备份
## 紧急恢复
如果以上方法都不行,可以尝试:
### 1. 重新克隆项目
```bash
# 备份当前修改
git stash
# 重新克隆
git clone <repository-url>
cd <project-name>
# 恢复修改
git stash pop
# 安装依赖
npm install
# 启动
npm run dev
```
### 2. 使用生产构建
```bash
# 构建生产版本
npm run build:prod
# 使用静态服务器运行
npx serve -s dist
```
### 3. 联系技术支持
如果问题持续存在,请提供:
- 完整的错误日志
- 浏览器版本
- Node.js版本
- 操作系统版本
- 网络环境信息
## 总结
当前遇到的错误主要是:
1.**ChunkLoadError** - 需要立即解决
2. ⚠️ **WebSocket连接失败** - 可以暂时忽略
3. **头像404** - 不影响功能
**推荐操作顺序**
1. 清除浏览器缓存并强制刷新
2. 如果不行,重新构建项目
3. 如果还不行,检查网络和代理配置
4. 最后考虑重新克隆项目
**重要提示**:这些错误与我们添加的"批量添加样品"功能无关,是前端开发环境的常见问题。