Files
浅念 95982fad23 upgrade: adopt V8.32.0-dev.1 (theme preview iframe fix, editor simple mode)
Overlay 46 upstream items; full patch set re-applied (all patched files
reset by overlay regardless of upstream change status — lesson recorded).
Verified: theme suites 35/35; dual-baseline 418 passed vs pristine
389+29 ours, FAILED-set diff EMPTY (same 10 Windows env fails).
Live: container 8.32.0-dev.1 healthy, hesupipe 192 entries intact,
trade-pro build 203 pages 0 errors.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-26 11:18:45 +08:00

56 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SiteForge Enterprise V8.32.0-dev.1
## 本版定位
在 V8.31.1 **完整源码**基础上,修复后台主题预览空白,并让页面编辑器对非技术使用者更加直观。保留四套主题、历史版本、公共组件、迁移、SEO、审批、Worker 构建等既有功能。
### 一、主题预览故障与修复
**根因:** 后端此前对所有非编辑器页面统一返回 `X-Frame-Options: DENY`,但主题图库和编辑器弹窗使用 iframe 展示 `/api/factory/themes/<id>/preview`。接口即使返回 HTTP 200,浏览器仍可能拒绝展示。
**修复机制:**
- 只对匹配 `^/api/factory/themes/[A-Za-z0-9_-]+/preview$` 的只读预览页面返回 `X-Frame-Options: SAMEORIGIN`,并限定 `Content-Security-Policy: frame-ancestors 'self'`。其他后台页面仍保留 `DENY`。
- 编辑器弹窗采用接口响应的 `srcdoc` 展示:iframe 继续使用 `sandbox="allow-scripts"`,**不允许 `allow-same-origin`**,所以主题脚本无法读取编辑器页面的 DOM 或会话;同时减少重复获取完整 HTML。
- 主题图库按主题和页面加载,并先检查 HTTP 状态;失败时显示错误码、重试按钮及“单独打开预览”。提供每张主题卡片直达其预览的入口 `?theme=automotive` 等。
- 展示预览不改变主题版本锁定,也不保存、发布网站。
### 二、可视化编辑器易用性
- 默认仅显示 **内容** 属性;复杂的样式与平板/手机设置通过“**更多设计设置**”展开,随时可收回。
- 顶部动态提示当前最应该做的动作:选区块、添加内容、编辑区块或保存草稿。
- 图片型组件在内容编辑区直接支持“**从图片素材库选择**”与“**上传新图片**”,包含内层已选中的图片组件。
- 小屏增加“关闭”编辑面板按钮,并验证 390px 下可操作且无横向溢出。
- 维持保存草稿与发布设计的区别:**保存/发布设计不会直接部署线上站点**,上线仍需构建和部署。
### 三、普通使用者操作指南
1. 登录后台,进入网站工作台的 **外观与设计**,在主题卡片点击 **预览页面效果**。亦可访问 `/theme-gallery`。
2. 选择主题、页面类型、电脑/平板/手机进行比较。需要看交互功能时在完整图库中操作。
3. 确定后回到工作台选择 **使用此主题**。预览本身**不会应用主题**。
4. 进入 **编辑页面**;点击中间画布或左侧区块,在右侧改文字与图片。
5. 更多排版参数点击 **更多设计设置**;完成后点击 **保存草稿**,核对后再 **发布设计**。
6. 之后到构建/交付中心构建静态网站,完成审批及正式部署。
### 四、验证与已知限制
- 400 项 Python 测试:18 个独立隔离批次覆盖全部 53 个模块;批次 15 初次因新增按钮文案断言未同步而失败,修正后 17 项重新通过;原始日志保留。
- 39 项历史 JavaScript 测试通过;全静态脚本 `node --check` 及版本检查通过。
- HTTP + Worker 路径:登录/CSRF → 创建站点和页面 → Worker 构建 → ZIP 下载 → 预览,通过。
- Chromium 隔离交互:简洁/高级切换、主题弹窗成功/失败、390px 小屏、面板关闭和主题图库错误重试,通过,JS 错误 0。
- **不能宣称生产上线验收完成:** 当前 Chromium 运行环境无法直接访问本地 HTTP 后台地址(策略拦截),浏览器测试使用真实页面脚本配模拟接口。正式生产环境还需验证登录态、反向代理安全响应头、Art Design Pro 官方工程编译、真实 PostgreSQL/Redis 与发布回滚。
### 五、验收命令
```bash
python -m pytest -q tests/test_v832_preview_easy_editor.py
python -m pytest -q tests/test_theme_pro_v3.py tests/test_professional_ui_v811.py
node --test tests_js/*.test.cjs
python scripts/http_end_to_end.py
python scripts/browser_v832_editor.py
python scripts/browser_v832_gallery.py
python scripts/verify_release.py
```
验收记录、截图、单批次复测及安全说明位于 `reports/v832/`。