CDN 打开脚本压缩和延迟加载,广告位全部空白,关掉这两个开关就恢复。第一次遇到会往复杂处想,其实漏掉的多是个小前提。
curl -s https://cdn.ads.example/loader.js | md5sum curl -s https://origin.example/loader.js | md5sum
CDN 对联盟脚本做了改写和延迟执行,破坏了脚本里对全局变量的判断。联盟代码本身也不允许被二次处理。这一点先确认清楚,后面就不用反复试。
「广告 CDN 冲突」相关的验证我通常做两遍,改完一次、隔天再看一次,确认不是临时生效。把复现步骤压到三条以内,交给同事也能跑出来,才算真的定位清楚。
改动写完就同步给同事,下一个人踩同一个坑,成本还是你的。验证用真实数据走一遍,测试数据太干净,边界情况根本碰不到。
具体做法是,在 CDN 规则里排除联盟域名和广告脚本;关掉延迟执行和合并,保留原样加载;用带参数的地址绕过缓存,对比源站和 CDN 的返回;确认广告恢复后再逐项打开其他优化。
改完照着核一遍,源站和 CDN 返回的脚本内容一致,广告正常显示。
