网页端:平台桥与部署修复(宝塔/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:
24kycj
2026-05-09 18:57:53 +08:00
parent ee6ef462ca
commit 2e6578247e
27 changed files with 6606 additions and 3542 deletions
+97
View File
@@ -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 配置是否正确指向文件目录