返回平台 · 部署自检
AIXG·公关活动创作平台 第85版 · 宝塔部署修复版 v85-baota1
修复对象:http://pr.xiganggroup.com(只读检查;本次没有修改该服务器或原平台)。
一、这次修了什么
1. 主因是普通HTTP域名不提供crypto.randomUUID,而原程序在打开子页、切换菜单、新建项目和恢复深层链接时直接调用它。错误会发生在页面切换之前,表现为首页能显示、目录点不动。原包已有hash路由,单加“伪静态”不能解决此问题。
2. 增加最先加载的运行兼容层,用crypto.getRandomValues生成符合UUID v4格式的标识,不使用Math.random,不重置本地存储,不改原数据。HTTPS中已存在的原生randomUUID保持不变。
3. 仍使用原第85版React主程序、界面、功能入口与数据适配器。static/app.js、static/app.css、data/、assets/与最新带数据包保持原样。中文文件、相对资源路径、hash和查询参数均保留;新增构建缓存版本号,防止沿用旧入口资源。
4. 将原源码中的三份政策文档导出为真实静态页,并把政策链接定位到当前部署目录,避免这些链接在子目录下跳出站点根目录。
5. 新增部署自检页面、可见的启动错误提示、Nginx/Apache示例、回归报告和源码适配补丁。允许浏览器读取本页生成的blob/data资源,远程API仍由只读适配器禁止。
二、宝塔根目录部署(当前域名)
1. 先备份现有站点文件、宝塔站点配置和已有data目录。不要清空服务器目录,不要删除原数据,不需要清空浏览器存储。
2. 本ZIP没有额外包裹文件夹:解压后第一层就是index.html、static、assets、data等。
3. 在宝塔“网站”中确认pr.xiganggroup.com的网站根目录。例如配置为 /www/wwwroot/pr.xiganggroup.com,就应当存在:
/www/wwwroot/pr.xiganggroup.com/index.html
/www/wwwroot/pr.xiganggroup.com/static/app.js
/www/wwwroot/pr.xiganggroup.com/static/runtime-compat.js
/www/wwwroot/pr.xiganggroup.com/assets/...
/www/wwwroot/pr.xiganggroup.com/data/snapshot.js
如果文件被解压到多一层文件夹,移动整套内容到配置的根目录,或把站点根目录指向包含index.html的那一层。
4. 上传整套修复包并保持目录结构。请勿只上传index.html,勿把源码source目录当作运行根目录。原服务器若新增了业务数据,先对比备份,不能直接覆盖未知新增文件。
5. 默认文档设为index.html。普通静态站无需Node.js进程、PHP、数据库或SPA伪静态。
6. 访问 http://pr.xiganggroup.com/deployment-check.html 自检,再访问 http://pr.xiganggroup.com/index.html#projects 。确认显示v85-baota1;如果仍旧,强制刷新该页或更新代理/CDN缓存,不要清空业务存储。
7. 此包包含真实业务快照,没有服务器登录鉴权。公开域名的访问者可能下载原始数据。请在宝塔/网关设置受控访问、配置HTTPS,并避免公开分享ZIP或数据地址。这里的HTTP兼容修复不代替安全部署。
三、子目录部署
可将整套包放在网站的 /aixg/ 或其他目录中,访问:
https://你的域名/aixg/index.html#projects
https://你的域名/aixg/index.html?eventCategory=quotation#commerce
https://你的域名/aixg/deployment-check.html
中文目录也可,但应让浏览器自动编码URL。打开目录URL时保留末尾斜杠,或直接指定index.html。static、assets、data等仍与index.html同级;不要修改为以“/static”开头的绝对路径。
不需要把每个菜单另建一个服务器目录。#projects、#commerce等由原React应用处理。原项目ID、文档ID仍在?查询参数中,刷新时同一index.html负责恢复。
四、Nginx / Apache
示例在deploy/nginx.example.conf与deploy/apache.example.conf中。
Nginx保持正常静态文件规则try_files $uri $uri/ =404即可。哈希导航不依赖回退rewrite。不要将不存在的.js和.css强行返回index.html,否则会产生Unexpected token <或MIME错误。
请合并到原站点配置,保留原TLS、证书、访问控制和日志设置;不要直接粘贴重复的server或location块。宝塔通常已加载mime.types。JS应返回application/javascript,CSS应返回text/css,HTML应返回text/html。
服务器若额外发送CSP响应头,页面meta不能放宽它。不要套用会阻止本站static和data脚本的策略;同时不需要unsafe-eval、跨域API权限或禁用浏览器安全功能。
五、上线后逐项验收
- 打开部署自检:显示v85-baota1、UUID正常、数据脚本加载、主JS/CSS/图标/中文页面均HTTP 200且类型正确。
- 点击灵感广场、公关活动、图像创作、视频创作、万能画布、我的项目、招标线索:必须看主内容变化,不能只看侧栏标签。
- 打开已有项目、图像草稿、活动文档和画布,确认原标题和内容。原本为空的文档保持为空。
- 复制带?参数与#片段的链接到新标签页;刷新,后退,前进,再重复点菜单,确认位置和内容正确。
- 根目录和子目录各测一次;中文“全部数据”与“使用说明”都能打开。
- AI生成、云端保存、充值等应显示只读/服务未配置提示,不能出现虚假成功。正常的只读提示不是导航故障。
- 开发者工具如有红色错误,记录具体错误与请求URL;无需提供密码、服务器密钥或未脱敏数据。
六、功能与数据边界(重要)
这是带真实数据的静态只读运行包,不是完整后端部署。可以导航、搜索、读取现有记录,保留现有本地导出与临时界面操作。AI生成、云端保存/上传、真实登录、充值、自动抓取、跨设备同步需要原第85版后端、数据库、对象存储和相应服务配置,不能仅靠此ZIP恢复。临时输入不要当作已保存成果。
数据仍为2026-10-09T02:34:17.203Z快照:3项目、8项目历史版本、3图像草稿、6活动文档、1有效创意草稿、1有效画布;被删除历史记录和原始数据表继续保留。
公告原始库存121、本地过滤105、此前已登录线上观察94的差异尚未逐条核对;42条公告长正文与5条来源历史长字段不完整;1张历史生成测试图只有元数据。原缺口说明完整保留,未造数据或伪造文件。
只读核对表明pr.xiganggroup.com当时公开提供的37张数据表与最新带数据包逐值一致;其说明metadata略旧。本次保留最新完整说明及原记录,不以旧metadata覆盖。
七、源码与验证
新增运行兼容层源码:offline-build/runtime-compat.js,发布副本:static/runtime-compat.js。
完整修改:修复源码补丁.patch(相对于此前带数据包)。offline-build/build.mjs与build-legal.mjs提供重建步骤。需要重建时使用此前第85版完整源码包的source/,按原说明安装锁定依赖;日常静态部署不需要构建。
qa/中包含回归测试与结果。模拟DOM与真实浏览器结果分开列出;未运行的项目不会标为通过。真实服务器配置和各浏览器扩展可能不同,请按上述验收单检查自己的部署。
SHA256SUMS.txt及校验文件.py用于检查上传/解压完整性。