docs(seo): record full-scene source restore findings

This commit is contained in:
root
2026-04-17 13:33:33 +08:00
parent 28e2a93563
commit e5228a1734

View File

@@ -2640,12 +2640,32 @@ php code/scripts/seo_copy_restore_from_source.php \
--source=<bundle-or-source-root>
```
这个脚本当前只会处理
当前版本的这个脚本已经升级为
1. `detail`
2. `play`
1. 不传 `--scenes` 时,自动识别 source 里实际存在的已知场景并回灌
2. `--scenes=...` 时,只恢复指定场景
比较适合最小重建阶段使用。
目前默认支持:
1. `home`
2. `category_index`
3. `category_list`
4. `search`
5. `rank_index`
6. `rank_list`
7. `detail`
8. `forge`
9. `play`
如果只想做最小恢复,仍然可以显式指定:
```bash
php code/scripts/seo_copy_restore_from_source.php \
--host=<host-dir> \
--source=<bundle-or-source-root> \
--scenes=detail,play \
--dry-run
```
### 七、回灌后的文件审计
@@ -2937,6 +2957,107 @@ php scripts/seo_copy_front_verify.php <host> play <videoId> <playType> <episode>
2. 本质上更接近 bootstrap 深页资产链的结果
3. 不是后台那条“固定 6 槽位”通用发布链的自然产物
### 2.1 2026-04-17 再确认:旧 `restore_from_source` 的缺口已经补上
这轮继续排查 `jpjdxs.com` 后,已经进一步确认:
1. 有些 host 不是“source 没有资产”
2. 而是“source 里有更多场景,但旧恢复脚本只写回了 `detail/play`
以本机这次实际找到的 source 为例:
- `code/storage/domain_bootstrap_bundles/jpjdxs-seed-a1/data/seo_copy/jpjdxs-com`
里面实际存在:
1. `home/index.json`
2. `category_index/dian-ying.json`
3. `category_list/dian-ying--shao-shi-dian-ying.json`
4. `search/h-2d9bf00ea1f2e5ee.json`
5. `rank_index/index.json`
6. `rank_list/daily.json`
7. `detail/76342.json`
8. `forge/76342-forge-1.json`
9. `play/76342-play-douban-1.json`
但旧版 `code/scripts/seo_copy_restore_from_source.php` 只会扫:
1. `detail`
2. `play`
所以会出现一种很容易把人带偏的现象:
1. bundle/source 里明明有榜单、forge、分类、搜索资产
2. 执行恢复后却只有 `detail/play` 被补进 `published`
3. 前台就会表现成“有些引导文回来了,有些还是像没恢复”
这轮已经把:
- `code/scripts/seo_copy_restore_from_source.php`
升级成“按 source 中实际存在场景自动回灌”的版本,默认支持:
1. `home`
2. `category_index`
3. `category_list`
4. `search`
5. `rank_index`
6. `rank_list`
7. `detail`
8. `forge`
9. `play`
并且已在本机对 `jpjdxs-com` 做过 dry-run 与正式写回验证:
```bash
php code/scripts/seo_copy_restore_from_source.php \
--host=jpjdxs-com \
--source=code/storage/domain_bootstrap_bundles/jpjdxs-seed-a1/data/seo_copy \
--dry-run
php code/scripts/seo_copy_restore_from_source.php \
--host=jpjdxs-com \
--source=code/storage/domain_bootstrap_bundles/jpjdxs-seed-a1/data/seo_copy
```
写回后重新审计,已经新增恢复出:
1. `category_index/dian-ying.json`
2. `category_list/dian-ying--shao-shi-dian-ying.json`
3. `search/h-2d9bf00ea1f2e5ee.json`
4. `rank_index/index.json`
5. `rank_list/daily.json`
6. `forge/76342-forge-1.json`
同时前台闭环验证已经通过:
```bash
php code/scripts/seo_copy_front_verify.php jpjdxs.com rank_index --target-root=code/data/seo_copy_published --base-url=https://jpjdxs.com --format=text
php code/scripts/seo_copy_front_verify.php jpjdxs.com rank_list daily --target-root=code/data/seo_copy_published --base-url=https://jpjdxs.com --format=text
php code/scripts/seo_copy_front_verify.php jpjdxs.com forge 76342 1 --target-root=code/data/seo_copy_published --base-url=https://jpjdxs.com --format=text
```
结果都已经:
1. `status: 200`
2. `all_matched: yes`
这条结论以后非常重要:
1. 如果 `source` 里有 `rank_index / rank_list / forge / category / search`
2.`published` 里只有 `detail / play`
优先先查:
1. 当前机器上的 `seo_copy_restore_from_source.php` 是否已经是“全场景版本”
2. 之前是不是只跑过旧脚本或 `--scenes=detail,play`
不要再直接误判成:
1. 这些资产从来没生成过
2. bundle/source 已经失效
3. 之前做好的差异化已经全部被删光
### 3. 系统并不是“不能导入深页文件”,而是“缺少深页源文件”
已再次核对: