网页端:平台桥与部署修复(宝塔/Nginx)
- lib/platform:网页 Electron 统一 bridge/web/electron,子目录 API 基路径、返回首页跳站点根、路径末尾斜杠兼容 - index/design*.web.html:网页入口,web.js 加缓存参数避免旧脚本缓存 - api:PHP 读写 soon;文档说明目录权限与 Nginx - lib/design*、lib/index:与 platformBridge 对接及网页侧逻辑 - 公共资源 JsBarcode/jr-qrcode;文档与 package/README/.gitignore 等同步更新 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
# SoonDesign 网页端服务器文件保存 API
|
||||
|
||||
## 功能说明
|
||||
|
||||
网页端默认将文件保存在浏览器缓存(localStorage/sessionStorage)中。通过部署这些 API 接口,可以实现将文件保存到服务器,实现真正的文件持久化。
|
||||
|
||||
## 部署步骤
|
||||
|
||||
### 1. 上传 API 文件
|
||||
|
||||
将 `api` 目录下的 PHP 文件上传到服务器的 `/api/` 目录(相对于网站根目录)。
|
||||
|
||||
例如,如果网站根目录是 `/www/wwwroot/soonWebsite/`,则:
|
||||
- `save_file.php` → `/www/wwwroot/soonWebsite/api/save_file.php`
|
||||
- `read_file.php` → `/www/wwwroot/soonWebsite/api/read_file.php`
|
||||
|
||||
### 2. 创建文件存储目录
|
||||
|
||||
创建用于存储 `.soon` 文件的目录:
|
||||
|
||||
```bash
|
||||
mkdir -p /www/wwwroot/soonWebsite/design/files
|
||||
chmod 755 /www/wwwroot/soonWebsite/design/files
|
||||
```
|
||||
|
||||
### 3. 配置 Nginx(如果需要)
|
||||
|
||||
确保 Nginx 配置允许访问 `/api/` 和 `/design/files/` 目录:
|
||||
|
||||
```nginx
|
||||
location /api/ {
|
||||
try_files $uri $uri/ =404;
|
||||
}
|
||||
|
||||
location /design/files/ {
|
||||
alias /www/wwwroot/soonWebsite/design/files/;
|
||||
# 允许列出文件(可选)
|
||||
autoindex off;
|
||||
}
|
||||
```
|
||||
|
||||
### 4. 测试 API
|
||||
|
||||
访问以下 URL 测试 API 是否正常工作:
|
||||
|
||||
- 保存文件:`http://114.55.133.123:8888/api/save_file.php`
|
||||
- 读取文件:`http://114.55.133.123:8888/api/read_file.php?fileName=test.soon`
|
||||
|
||||
## 工作原理
|
||||
|
||||
1. **自动检测服务器环境**:网页端会自动检测是否在服务器环境(非 localhost/127.0.0.1)
|
||||
2. **保存文件**:当用户保存文件时,如果是服务器环境,会自动调用 `save_file.php` 将文件上传到服务器
|
||||
3. **读取文件**:当打开文件时,如果是服务器文件路径,会自动调用 `read_file.php` 从服务器读取
|
||||
4. **降级处理**:如果服务器保存失败,会自动降级为浏览器下载
|
||||
|
||||
## 文件存储位置
|
||||
|
||||
所有保存的 `.soon` 文件存储在:
|
||||
```
|
||||
/design/files/
|
||||
```
|
||||
|
||||
文件访问路径为:
|
||||
```
|
||||
http://114.55.133.123:8888/design/files/文件名.soon
|
||||
```
|
||||
|
||||
## 安全说明
|
||||
|
||||
- API 接口已包含文件名清理,防止路径遍历攻击
|
||||
- 建议在生产环境中添加身份验证(如 Token 验证)
|
||||
- 建议限制文件大小和类型
|
||||
- 建议定期清理旧文件
|
||||
|
||||
## 故障排除
|
||||
|
||||
### 问题:保存时提示"保存失败"
|
||||
|
||||
**可能原因:**
|
||||
1. API 文件路径不正确
|
||||
2. 文件存储目录权限不足
|
||||
3. PHP 配置问题
|
||||
|
||||
**解决方法:**
|
||||
1. 检查 API 文件是否在正确位置
|
||||
2. 检查目录权限:`chmod 755 /www/wwwroot/soonWebsite/design/files`
|
||||
3. 检查 PHP 错误日志
|
||||
|
||||
### 问题:文件保存后找不到
|
||||
|
||||
**可能原因:**
|
||||
1. 文件保存路径配置错误
|
||||
2. Nginx 配置问题
|
||||
|
||||
**解决方法:**
|
||||
1. 检查 `save_file.php` 中的 `$saveDir` 路径
|
||||
2. 检查 Nginx 配置是否正确指向文件目录
|
||||
Reference in New Issue
Block a user