增加七牛云存储
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
# Platform前端项目文档
|
||||
|
||||
## 📚 文档目录
|
||||
|
||||
### 功能使用文档
|
||||
- [字典使用说明](./dictionary-usage.md)
|
||||
- [Pinia字典指南](./pinia-dict-guide.md)
|
||||
- [调用字典](./调用字典.md)
|
||||
- [接口调用](./接口调用.md)
|
||||
- [拼接接口路径](./拼接接口路径.md)
|
||||
- [获取缓存数据](./获取缓存数据.md)
|
||||
- [调用图片上传组件](./调用图片上传组件.md)
|
||||
- [一键复制](./一键复制.md)
|
||||
|
||||
### 存储配置功能
|
||||
存储配置功能的前端实现已完成,包括:
|
||||
- 存储配置界面组件:`src/views/system/platformsettings/components/storageSettings.vue`
|
||||
- API接口:`src/api/sitesettings.js`
|
||||
|
||||
详细文档请查看后端项目文档:`go/docs/README_STORAGE.md`
|
||||
|
||||
## 🚀 快速导航
|
||||
|
||||
### 新手入门
|
||||
1. 了解项目结构
|
||||
2. 阅读 [接口调用](./接口调用.md)
|
||||
3. 学习 [字典使用](./dictionary-usage.md)
|
||||
|
||||
### 常用功能
|
||||
- 字典管理:[dictionary-usage.md](./dictionary-usage.md)
|
||||
- 图片上传:[调用图片上传组件.md](./调用图片上传组件.md)
|
||||
- 数据缓存:[获取缓存数据.md](./获取缓存数据.md)
|
||||
|
||||
## 📂 项目结构
|
||||
|
||||
```
|
||||
platform/
|
||||
├── src/
|
||||
│ ├── api/ # API接口
|
||||
│ ├── assets/ # 静态资源
|
||||
│ ├── components/ # 公共组件
|
||||
│ ├── router/ # 路由配置
|
||||
│ ├── stores/ # 状态管理
|
||||
│ ├── utils/ # 工具函数
|
||||
│ └── views/ # 页面组件
|
||||
├── public/ # 公共资源
|
||||
├── docs/ # 文档(本目录)
|
||||
└── package.json # 依赖配置
|
||||
```
|
||||
|
||||
## 🔧 技术栈
|
||||
|
||||
- Vue 3
|
||||
- Element Plus
|
||||
- Pinia
|
||||
- Vue Router
|
||||
- Axios
|
||||
- Vite
|
||||
|
||||
## 🔗 相关链接
|
||||
|
||||
- [Vue 3 文档](https://vuejs.org/)
|
||||
- [Element Plus 文档](https://element-plus.org/)
|
||||
- [Pinia 文档](https://pinia.vuejs.org/)
|
||||
- [Vite 文档](https://vitejs.dev/)
|
||||
|
||||
## 📝 更新日志
|
||||
|
||||
### 2024-01-01
|
||||
- ✅ 完成存储配置界面
|
||||
- ✅ 支持本地存储和七牛云存储配置
|
||||
- ✅ 表单验证和草稿保存
|
||||
- ✅ 完善文档体系
|
||||
@@ -0,0 +1,101 @@
|
||||
# 图片URL处理说明
|
||||
|
||||
## 问题描述
|
||||
|
||||
在使用七牛云存储时,上传的图片URL会出现重复拼接的问题:
|
||||
|
||||
```
|
||||
错误: http://localhost:8081http://7cloud.yunzer.cn/2026/04/09/xxx.png
|
||||
正确: http://7cloud.yunzer.cn/2026/04/09/xxx.png
|
||||
```
|
||||
|
||||
## 原因分析
|
||||
|
||||
1. **本地存储**返回的URL是相对路径:`/uploads/2026/04/09/xxx.png`
|
||||
2. **七牛云存储**返回的URL是完整URL:`http://7cloud.yunzer.cn/2026/04/09/xxx.png`
|
||||
3. 前端的 `getFileUrl` 方法会自动拼接 `VITE_API_BASE_URL`
|
||||
4. 导致七牛云URL被重复拼接
|
||||
|
||||
## 解决方案
|
||||
|
||||
### 1. 创建通用工具函数
|
||||
|
||||
文件:`platform/src/utils/url.js`
|
||||
|
||||
```javascript
|
||||
export function getFileUrl(url) {
|
||||
if (!url) return '';
|
||||
|
||||
// 如果URL已经是完整的URL,直接返回
|
||||
if (url.startsWith('http://') || url.startsWith('https://')) {
|
||||
return url;
|
||||
}
|
||||
|
||||
// 否则拼接API基础URL
|
||||
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || '';
|
||||
return `${API_BASE_URL}${url}`;
|
||||
}
|
||||
```
|
||||
|
||||
### 2. 在组件中使用
|
||||
|
||||
```vue
|
||||
<script setup>
|
||||
import { getFileUrl } from '@/utils/url';
|
||||
|
||||
// 使用工具函数
|
||||
const imageUrl = getFileUrl(file.url);
|
||||
</script>
|
||||
```
|
||||
|
||||
## 使用示例
|
||||
|
||||
### 本地存储
|
||||
|
||||
```javascript
|
||||
const url = '/uploads/2026/04/09/xxx.png';
|
||||
const fullUrl = getFileUrl(url);
|
||||
// 结果: http://localhost:8081/uploads/2026/04/09/xxx.png
|
||||
```
|
||||
|
||||
### 七牛云存储
|
||||
|
||||
```javascript
|
||||
const url = 'http://7cloud.yunzer.cn/2026/04/09/xxx.png';
|
||||
const fullUrl = getFileUrl(url);
|
||||
// 结果: http://7cloud.yunzer.cn/2026/04/09/xxx.png
|
||||
```
|
||||
|
||||
## 需要修改的文件
|
||||
|
||||
所有使用 `getFileUrl` 或 `getEnvUrl` 的组件都应该使用统一的工具函数:
|
||||
|
||||
- ✅ `platform/src/views/system/fileManager/index.vue`
|
||||
- ⏳ `platform/src/views/moduleshop/center/index.vue`
|
||||
- ⏳ `platform/src/views/apps/babyhealth/babys/index.vue`
|
||||
- ⏳ `platform/src/views/apps/babyhealth/babys/components/edit.vue`
|
||||
- ⏳ 其他使用图片URL的组件
|
||||
|
||||
## 最佳实践
|
||||
|
||||
1. **统一使用工具函数**:不要在组件中重复定义 `getFileUrl`
|
||||
2. **判断完整URL**:始终检查URL是否已经是完整URL
|
||||
3. **兼容两种存储**:确保本地存储和七牛云存储都能正常工作
|
||||
|
||||
## 测试清单
|
||||
|
||||
- [x] 本地存储图片显示正常
|
||||
- [x] 七牛云存储图片显示正常
|
||||
- [x] 图片预览功能正常
|
||||
- [ ] 视频文件显示正常
|
||||
- [ ] 文档下载功能正常
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [存储配置功能](../go/docs/README_STORAGE.md)
|
||||
- [七牛云配置指南](../go/docs/storage-config-guide.md)
|
||||
|
||||
---
|
||||
|
||||
**修复时间**: 2024-01-01
|
||||
**修复人员**: AI Assistant
|
||||
Reference in New Issue
Block a user