5.0 KiB
5.0 KiB
2026-04-19 domain-seo-external storage 收口说明
背景
domain-seo-external 这套后台摘要原先把最新运行产物持续写到:
code/public/_admin_templates/domain-seo-external/latestcode/public/_admin_templates/domain-seo-external/snapshot-runscode/public/_admin_templates/domain-seo-external/snapshot-validate-runs
这会带来两个直接问题:
- 运行数据混进
public,容易污染 Git 待提交区 latest/*.summary.json/html属于运行产物,不适合作为源码提交
本次收口目标
把 domain-seo-external 的最新摘要与快照运行产物统一切到:
code/storage/external-seo/latestcode/storage/external-seo/snapshot-runscode/storage/external-seo/snapshot-validate-runs
并确保管理端 / API 返回路径同步改成 storage/... 相对路径。
本次实际修改
1. 管理端 root 改到 storage
文件:
调整:
domainExternalSeoSummaryRoot()改到storage/external-seo/latestdomainExternalSeoSnapshotRunRoot()改到storage/external-seo/snapshot-runsdomainExternalSeoSnapshotValidateRunRoot()改到storage/external-seo/snapshot-validate-runs- 新增
storageRelativePath(),供站外 SEO 这条链专门返回storage相对路径
2. 管理端站外 SEO 摘要返回值改走 storage 路径
文件:
覆盖范围:
getDomainExternalSeoSummarygetDomainExternalSeoTrendSummarygetDomainExternalSeoRealSummary- Search Console / 百度推送 / 爱站关键词 / site: probe 等摘要接口
saveDomainExternalSeoSnapshotsvalidateDomainExternalSeoSnapshots- 手工导入后返回的
real_summary_*路径
结果:
这些接口现在返回的是:
external-seo/latest/...external-seo/snapshot-runs/...external-seo/snapshot-validate-runs/...
而不是 public/_admin_templates/...
3. API 推送入口改到 storage
文件:
调整:
summaryRoot()改到storage/external-seo/latestsnapshotRunRoot()改到storage/external-seo/snapshot-runssnapshotValidateRunRoot()改到storage/external-seo/snapshot-validate-runssaveSnapshots()/validateSnapshots()的返回路径统一改走storageRelativePath()
4. snapshot run 索引 helper 也改走 storage
文件:
调整:
- 原先 helper 内部只识别
public - 现在改为识别
storage - 避免列表接口继续吐绝对路径,或继续带旧
public前缀
兼容处理
为了避免切换后后台立刻读不到最近一次摘要,这次已把当前:
code/public/_admin_templates/domain-seo-external/latest/*
复制了一份到:
code/storage/external-seo/latest/*
这样下一次后台读 storage 时,至少已有一份最近摘要可用。
已验证
已通过语法检查:
php -l code/app/admin/controller/Site.php
php -l code/app/api/controller/SeoCollector.php
php -l code/app/common/helper/DomainExternalSeoSnapshotRunIndexHelper.php
php -l code/app/common/helper/DomainExternalSeoSnapshotValidateRunIndexHelper.php
当前仍需主线 Codex 注意
code/public/_admin_templates/domain-seo-external/latest/*这批文件在仓库里当前仍是已跟踪文件- 本次收口已经阻止后续新运行继续写这条
public路径 - 但历史上已被 Git 跟踪的
public运行产物,这次没有直接强删或批量移出版本库 - 主线 Codex 提交前,建议明确把这批运行产物排除在提交之外
建议提交范围
建议优先给主线 Codex 复核这几份代码:
- Site.php
- SeoCollector.php
- DomainExternalSeoSnapshotRunIndexHelper.php
- DomainExternalSeoSnapshotValidateRunIndexHelper.php
这份说明文档:
一句话结论
本次已经把
domain-seo-external的 latest / snapshot 运行产物输出主链从public/_admin_templates/...收口到storage/external-seo/...,后续不应再把这类后台摘要数据当源码提交。