调试 AMP 缓存问题
我的文档为何在 AMP 缓存中被损坏?
有效的 AMP 文档在 AMP 缓存中与其在来源中的显示和行为方式通常相同。但是,一些组件和服务器配置可能会导致出现问题。
如果某个特定文档在来源中的显示和行为正常,但在通过缓存(请参阅如何将来源网址映射到 Google 的 AMP 缓存)查看时出现问题,请尝试以下操作:
- 打开浏览器的开发者/错误工具控制台,并解决显示的任何错误或警告。
- 通过 AMPBench 运行文档,并解决任何意外错误或警告。
如果完成这些步骤后仍有问题,请检查下表。
症状 | 问题 | 解决方案 |
---|---|---|
网页字体不显示(使用后备字体) | 字体提供商未将 AMP 缓加入白名单。 | 请与字体提供商联系,要求他们将所有缓存加入白名单。 |
素材资源(例如字体和图片)不显示(仅显示 HTTP 来源) | 文档使用协议相对网址。 | 切换为绝对网址(即 http://www.site.com/doc/amp ,而非 //www.site.com/doc/amp )。 |
素材资源(例如字体和图片)不显示 | 提供素材资源时使用了错误的 MIME 类型。 | 指定可接受的 MIME 类型。 |
AMP 缓存无法访问素材资源。 | 确保 AMP 缓存可以访问您的素材资源,且未被 IP 地址或用户代理等阻止。(Google 抓取工具使用的用户代理列表)。 | |
诸如 <amp-form> 、<amp-list> 等动态元素的行为不符合预期。 | CORS 标头损坏或丢失。 | 这些组件从 AMP 缓存向来源发出跨源请求。默认情况下,浏览器会阻塞这些请求。要允许这些请求,请发出将所有缓存加入白名单的 CORS 标头。 |
因法律下架通知而须移除的内容仍在提供。 | AMP 缓存尚未执行移除。 | 遵循各个 AMP 缓存的指南以刷新内容。对于 Google AMP 缓存,请参阅更新 AMP 内容。 |