9.6 KiB
9.6 KiB
08 GPT模板其它服务器最新版对齐交接 2026-04-18
这份文档给“其它服务器上的 Codex / 接手同学”使用。
目标不是让对方自己猜,而是让对方直接知道:
- 这次要同步的是哪一条线
- 哪些文件必须一起更新
- 上线后先验什么
- 出现异常时先查哪里
1. 先定边界
这次不是“从老模板迁到 GPT 模板”。
前提是:
- 目标服务器原本就是 GPT 模板
- 目标服务器也在跑
videoGpt1 - 现在要做的是把它对齐到当前这台机器的最新 GPT 主线版本
这次同步的不是老模板,也不是全站所有样式。
这次同步的是:
videoGpt1这条 GPT 模板线- GPT 模板详情 / 播放 / 搜索页 SEO 修复
- slug-only 详情兜底
- sitemap 修复
- 前台详情异常补充日志
不要混入:
1001-1005老模板- 其它组还没更新到当前 GPT 主线版本的站
- 与 GPT 模板无关的历史试验文件
2. 这次同步的核心目标
把“原本也是 GPT 模板”的其它服务器,对齐到当前主线,重点保证下面 5 件事:
- slug-only 详情页不要再硬
404 /detail/pinyin-xxx这类链接能兜底到真实详情页- sitemap 主入口和视频分页正常
- GPT 模板搜索页 / 播放页 / 详情页主标题正常
- 如果前台详情页再出现 ThinkPHP 错页,能在日志里抓到异常栈
3. 必须同步的代码文件
下面这些文件建议按“必须同步”处理,不要只挑一半。
3.1 路由与详情兜底
这一组负责:
- 域名上下文正确落到 GPT 站
/detail/:strPinyin/detail/pinyin-:strPinyin- slug-only 详情 fallback
- 播放路由的详情取数兼容
3.2 sitemap 修复
这一组负责:
- sitemap 目录递归创建
- 详情 URL slug 规范化
- 空 slug 回退
3.3 前台异常抓栈
这一项是这次补的关键兜底。
作用:
- 当前台 detail / play 类请求再出现 ThinkPHP 错页
- 自动记录 host、url、route 参数、UA、异常 message、file、line
- 方便后续按时间点抓栈
3.4 GPT 模板详情 / 播放 / 搜索页模板
搜索页:
- search_header_simple.html
- search_header_seo.html
- search_header_rich.html
- search_header_centered.html
- search_header_media.html
播放页:
4. 推荐同步顺序
不要乱序,建议按下面顺序做:
- 先同步服务层与路由:
SiteContext.phpVideoService.phprouter.php
- 再同步 sitemap:
VideoSiteMapLogic.phpSiteMapLogic.php
- 再同步 GPT 模板:
getVideoInfo.htmlgetVideoPlayUrl.html- 搜索页模板
- 播放页模板
detail_main/title.html
- 最后同步异常处理:
ExceptionHandle.php
原因:
- 先保证路由和取数能通
- 再保证 sitemap 不继续产坏链
- 再保证页面展示层正常
- 最后补抓栈,方便后续继续盯
5. 其它服务器接手 Codex 的执行步骤
第一步:先确认该服务器是不是同一条 GPT 模板线
先确认目标站是否真的使用 videoGpt1。
如果不是,就不要直接照搬这份文档。
如果是,就按“同模板线升级”处理,不要按“跨模板迁移”处理。
第二步:同步上面的必须文件
如果是同一套 GPT 模板代码目录,优先直接按文件覆盖同步。
如果是人工搬运,至少保证:
- 服务层 3 个文件一起到位
- sitemap 2 个文件一起到位
- GPT 模板文件整组到位
ExceptionHandle.php最后到位
第三步:清理运行时缓存
同步完代码后,至少做一次运行时清理,避免旧编译模板或旧路由缓存继续干扰。
重点关注:
- 模板缓存
- runtime 缓存
- sitemap 输出缓存
如果接手的 Codex 不确定怎么清,就先只做安全清理,不要删业务数据。
第四步:先验 4 类 URL
每台 GPT 服务器完成最新版对齐后,至少要验这 4 类:
- 首页
- 搜索页
- 详情页
- 播放页
6. 上线后最小验收清单
6.1 详情页兜底
至少抽查 2 类:
- 正常详情 URL
- slug-only / pinyin 详情 URL
例如:
/detail/pinyin-xxxxx
/film/slug/id
/movie/id-slug
通过标准:
- 返回
200 - canonical 正常
- 页面主
h1正常 - 不再硬跳 ThinkPHP 错页
6.2 搜索页
通过标准:
- 搜索页
h1有内容 - 不再空标题
- 搜索结果页 title / canonical 正常
6.3 播放页
通过标准:
- 播放页主标题正常
- 标题不再掉成空值
- 能从播放页正常回到详情页
6.4 sitemap
至少验:
/sitemap.xml/sitemap_index.xml/sitemap-main.xml
通过标准:
- 返回
200 - 能打开
- 详情 URL 不再明显带空 slug
7. 推荐验收命令
看状态码
curl -I -L -s 'https://example.com/detail/pinyin-xxx'
看 nocache
curl -I -L -s 'https://example.com/detail/pinyin-xxx?__nocache=1'
抽取 title / canonical / h1
curl -L -s 'https://example.com/detail/pinyin-xxx' | rg -o '<title>.*?</title>|<link rel=\"canonical\".*?>|<h1[^>]*>.*?</h1>' -N
8. 如果仍出现 ThinkPHP 错页,先怎么查
这次已经补了前台 detail/play 异常日志。
如果其它服务器也同步了 ExceptionHandle.php,下次再出现:
- 先记下精确时间
- 例如:
2026-04-18 14:23:15 +08:00
- 例如:
- 记下完整 URL
- 去 runtime 日志里搜:
frontend_detail_exception
重点看:
hosturlroute.strPinyinroute.intVIdexception_messageexception_fileexception_line
9. 给其它服务器 Codex 的接手话术
可以直接复制这段给对方:
这次不是把别的模板迁到 GPT。
目标服务器原本也是 GPT 模板,现在要做的是把它对齐到当前最新 GPT 主线版本。
请只处理 videoGpt1 相关代码,不要混入 1001-1005 老模板。
必须一起同步:
1. app/services/SiteContext.php
2. app/services/VideoService.php
3. app/home/config/router.php
4. app/task/logic/VideoSiteMapLogic.php
5. app/task/logic/SiteMapLogic.php
6. app/ExceptionHandle.php
7. app/home/view/videoGpt1/video/getVideoInfo.html
8. app/home/view/videoGpt1/video/getVideoPlayUrl.html
9. app/home/view/videoGpt1/module/detail_main/title.html
10. app/home/view/videoGpt1/module/player/engine/dplayer.html
11. app/home/view/videoGpt1/module/search/ 下 5 个搜索页模板
12. app/home/view/videoGpt1/module/play/ 下 5 个播放页模板
更新完成后先验:
1. 首页
2. 搜索页
3. 详情页
4. 播放页
5. sitemap.xml / sitemap_index.xml / sitemap-main.xml
重点确认:
1. slug-only 详情不再 404
2. 搜索页 h1 正常
3. 播放页 h1 正常
4. canonical 正常
5. 如再出现 ThinkPHP 错页,去查 frontend_detail_exception 日志
10. 接手前建议先看
先看这些文档再动代码:
11. 一句话结论
其它服务器如果原本也是 GPT 模板,现在要对齐到当前最新版,不要只改几个模板文件,必须把路由、服务层、sitemap 和异常抓栈一起同步,否则最容易出现“页面样式像更新了,但 slug 详情 / sitemap / 偶发异常仍停在旧版本”的半更新问题。