这个坑值得记一笔。把组织、站点、文章合并进图结构,文章的发布方用标识引用,测试工具提示引用无法解析。

这类报错背后常见的原因有几处,逐个排除就行。标识用了相对路径,拼接后与定义不一致;标识带锚点但定义处没写;两处标识末尾斜杠不一样。

第一件事是对比两处标识字符串

curl -s https://www.example.com/post/ | grep -o '"@id":"[^"]*"' | sort -u

再往下统一成绝对地址加锚点

curl -s https://www.example.com/post/ | grep -c '#organization'

校验 JSON 结构

curl -s https://www.example.com/post/ | python -m json.tool > /dev/null && echo ok

末了确认实体数量

curl -s https://www.example.com/post/ | grep -c 'publisher'

排查用的命令都是临时敲的,没有写成脚本,事后才整理。

手上没有现成的复现脚本,就照着线上请求手工拼了一个。

报错是间歇性的,我蹲守了半小时才抓到一次完整现场。

别只看报错消失,验证要多做一步。测试工具不再提示引用错误,作者和发布方信息完整,富媒体正常展示。

标识大小写和末尾斜杠都算差异,复制粘贴时最容易在这里出错。线上能稳定复现的问题都不算难,难的是只在大流量下才出现的那种。

作者 9823189