95982fad23
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>
4.0 KiB
4.0 KiB
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 下可操作且无横向溢出。
- 维持保存草稿与发布设计的区别:保存/发布设计不会直接部署线上站点,上线仍需构建和部署。
三、普通使用者操作指南
- 登录后台,进入网站工作台的 外观与设计,在主题卡片点击 预览页面效果。亦可访问
/theme-gallery。 - 选择主题、页面类型、电脑/平板/手机进行比较。需要看交互功能时在完整图库中操作。
- 确定后回到工作台选择 使用此主题。预览本身不会应用主题。
- 进入 编辑页面;点击中间画布或左侧区块,在右侧改文字与图片。
- 更多排版参数点击 更多设计设置;完成后点击 保存草稿,核对后再 发布设计。
- 之后到构建/交付中心构建静态网站,完成审批及正式部署。
四、验证与已知限制
- 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 与发布回滚。
五、验收命令
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/。