5.2 KiB
5.2 KiB
本地开发环境远程上传配置指南
问题描述
本地开发环境上传图片到远程服务器后,返回的URL是 http://localhost:8089/uploads/...,导致图片无法加载(404错误)。
原因分析
数据流程:
前端(5173) → 本地后端(8089) → 远程服务器(px.ddn-ai.cloud)
↓
保存文件成功
↓
返回URL: localhost:8089 ❌ (错误)
问题根源:
- 远程服务器的配置文件中
url-prefix设置为localhost:8089 - 远程服务器返回的URL使用的是它自己的配置
- 本地后端直接转发了远程服务器的响应
解决方案
1. 本地开发环境配置(已完成✅)
文件: peidu/backend/src/main/resources/application.yml
file:
upload:
mode: remote # 使用远程上传模式
remote:
url: https://px.ddn-ai.cloud/api/file/upload/direct
timeout: 30
url-prefix: https://px.ddn-ai.cloud/uploads/
文件: peidu/backend/src/main/resources/application-dev.yml
file:
upload:
mode: remote # 使用远程上传模式
local-path: C:/peidu/uploads/
remote:
url: https://px.ddn-ai.cloud/api/file/upload/direct
timeout: 30
url-prefix: https://px.ddn-ai.cloud/uploads/
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
max-size: 10
2. 远程服务器配置(需要修改⚠️)
登录远程服务器:
ssh root@px.ddn-ai.cloud
修改配置文件:
找到远程服务器上的配置文件(通常在项目目录下):
application.ymlapplication-prod.yml或application-dev.yml
修改为:
file:
upload:
mode: local # 远程服务器使用本地保存模式
local-path: /www/wwwroot/px.ddn-ai.cloud/Image/
url-prefix: https://px.ddn-ai.cloud/uploads/ # ⚠️ 关键:必须是远程地址
allowed-types: jpg,jpeg,png,gif,bmp,webp,pdf,doc,docx,xls,xlsx
max-size: 10
重启远程服务器后端:
# 停止旧进程
ps aux | grep java
kill -9 <进程ID>
# 启动新进程
cd /path/to/backend
nohup java -jar peidu-backend-1.0.0.jar &
3. Nginx配置(确认)
确保远程服务器的 Nginx 配置正确映射 /uploads/ 路径:
location /uploads/ {
alias /www/wwwroot/px.ddn-ai.cloud/Image/;
autoindex off;
}
配置对比表
| 环境 | mode | local-path | url-prefix | 说明 |
|---|---|---|---|---|
| 本地开发 | remote | C:/peidu/uploads/ | https://px.ddn-ai.cloud/uploads/ | 上传到远程 |
| 远程服务器 | local | /www/wwwroot/px.ddn-ai.cloud/Image/ | https://px.ddn-ai.cloud/uploads/ | 本地保存 |
验证步骤
1. 验证远程服务器配置
在远程服务器上运行:
curl -X POST https://px.ddn-ai.cloud/api/file/upload/direct \
-F "file=@test.jpg"
应该返回:
{
"code": 200,
"message": "上传成功",
"data": {
"fileName": "20260126_xxx.jpg",
"fileUrl": "https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg",
"fileSize": "12345",
"fileType": "jpg"
}
}
关键检查: fileUrl 必须是 https://px.ddn-ai.cloud/uploads/...
2. 验证本地上传
在本地管理后台上传图片,检查:
- 上传成功
- 返回的URL是
https://px.ddn-ai.cloud/uploads/... - 图片可以正常显示
3. 验证图片访问
直接在浏览器访问:
https://px.ddn-ai.cloud/uploads/20260126_xxx.jpg
应该能正常显示图片。
常见问题
Q1: 远程服务器配置文件在哪里?
通常在以下位置之一:
/www/wwwroot/px.ddn-ai.cloud/backend/application.yml/opt/peidu/application.yml- JAR包同目录下的
application.yml
Q2: 如何查看远程服务器的配置?
# 查找配置文件
find / -name "application*.yml" 2>/dev/null
# 查看配置内容
cat /path/to/application.yml | grep -A 10 "file:"
Q3: 修改配置后需要重启吗?
是的,必须重启远程服务器的后端服务才能生效。
Q4: 如何确认配置生效?
查看远程服务器启动日志:
tail -f nohup.out
应该看到:
========================================
📁 文件上传配置初始化
上传模式: local
本地保存路径: /www/wwwroot/px.ddn-ai.cloud/Image/
✅ 本地保存模式
访问URL前缀: https://px.ddn-ai.cloud/uploads/
========================================
总结
核心要点:
- 本地开发环境:
mode=remote,上传到远程服务器 - 远程服务器:
mode=local,保存到本地磁盘 - 远程服务器的
url-prefix必须是https://px.ddn-ai.cloud/uploads/ - 修改远程配置后必须重启服务
修改完成后的效果:
前端 → 本地后端(remote模式) → 远程服务器(local模式)
↓
保存到 /www/wwwroot/.../Image/
↓
返回 https://px.ddn-ai.cloud/uploads/xxx.jpg ✅
↓
前端可以正常加载图片
日期
2026-01-26