# SiteForge Enterprise V8.32.0-dev.1 ## 本版定位 在 V8.31.1 **完整源码**基础上,修复后台主题预览空白,并让页面编辑器对非技术使用者更加直观。保留四套主题、历史版本、公共组件、迁移、SEO、审批、Worker 构建等既有功能。 ### 一、主题预览故障与修复 **根因:** 后端此前对所有非编辑器页面统一返回 `X-Frame-Options: DENY`,但主题图库和编辑器弹窗使用 iframe 展示 `/api/factory/themes//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/`。