调试 AMP 缓存问题
为什么我的文档在 AMP 缓存中损坏?
有效的 AMP 文档通常在 AMP 缓存中显示和行为与在源中相同。但是,有些组件和服务器配置可能会出现问题。
如果某个特定文档在你的源中显示和行为符合预期,但在通过缓存查看时不符合预期(如何将源 URL 映射到 Google 的 AMP 缓存),请尝试以下操作
- 打开浏览器的开发者/错误工具控制台,并解决出现的任何错误或警告。
- 通过 AMP 文档验证器 运行文档,并解决任何意外的错误或警告。
如果按照这些步骤操作后仍然遇到问题,请查看下表。
症状 | 问题 | 解决方案 |
---|---|---|
网页字体不显示(使用备用字体) | 字体提供商未将 AMP 缓存列入白名单。 | 联系字体提供商,并要求他们将 所有缓存 列入白名单。 |
资源(例如字体和图片)不显示(仅限 HTTP 源) | 文档使用协议相关 URL。 | 切换到绝对 URL(即 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 内容。 |