AMP
  • 网站

使用 Google AMP 缓存

简介

Google AMP 缓存 存储有效的 AMP,并提供对 AMP 的持续快速访问。任何人都可以使用它。

AMP 缓存 URL 格式

如果可能,Google AMP 缓存将为每个 AMP 文档的域名创建一个子域名,方法是先将其从 IDN(punycode) 转换为 UTF-8。缓存将每个 -(破折号)替换为 --(2 个破折号),并将每个 .(点)替换为 -(破折号)。例如,pub.com 将映射到 pub-com.cdn.ampproject.org

以下是 https://amp.org.cn/about/websites/ 的 AMP 缓存 URL

转换后的 AMP 缓存 URL 由以下部分组成

  • amp-dev:使用上述算法将发布商域转换成子域。
  • cdn.ampproject.org:AMP 缓存域。
  • c:表示这是一份 AMP 文档(还有表示图片的 i 和表示字体等资源的 r)。
  • s:表示 AMP 缓存使用 TLS(安全 HTTPS)从原点获取内容。
  • amp.dev/examples/components/amp-img:原始 URL(不包括方案)。

URL 可以包含查询字符串中的参数,只需将这些参数也包含在 AMP 缓存 URL 中即可。

示例:https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?value=Hello%20World

缓存更新

AMP 缓存使用 落后一步的缓存模型,该模型可由 max-age 缓存指令 控制。您可以使用此示例页面测试行为,该页面将在提供服务时打印当前日期

Max-age 15s:https://amp-dev.cdn.ampproject.org/c/s/amp.dev/documentation/examples/api/query?maxage=15

重定向和错误处理

以下是一些 AMP 缓存处理重定向和错误的示例

重定向

AMP 缓存会在解析 AMP URL 时遵循重定向。例如,如果一个 URL 重定向到另一个 AMP URL

$ curl -I https://ampbyexample.com/components/amp-img/

HTTP/1.1 301 Moved Permanently
Content-Type: text/html; charset=utf-8
Location: https://amp.org.cn/documentation/examples/components/amp-img/
...

那么 AMP 缓存将为原始 URL 返回已解析重定向的内容。

示例:https://amp-dev.cdn.ampproject.org/c/s/ampbyexample.com/components/amp-img/

如果您在服务器上移动 AMP 文件的位置,请务必从旧位置设置到新位置的重定向。

未找到

如果在 AMP 缓存中找不到某个页面,它将显示错误页面并返回 404 状态。

示例:https://amp-dev.cdn.ampproject.org/amp.dev/not-found

无效 AMP

如果某个页面是无效 AMP,AMP 缓存将返回 404 状态。

示例:https://amp-dev.cdn.ampproject.org/amp.dev/static/samples/files/invalid_amp.html

服务器错误

如果某个 URL 返回 5XX 服务器错误,AMP 缓存将返回 404 状态。

示例:https://amp-dev.cdn.ampproject.org/amp.dev/documentation/examples/api/error

需要进一步说明吗?

如果本页上的说明未能涵盖您的所有问题,请随时联系其他 AMP 用户来讨论您的确切用例。

转到 Stack Overflow
无法解释的功能?

AMP 项目强烈鼓励您参与和做出贡献!我们希望您成为我们开源社区的持续参与者,但我们也欢迎您对您特别热衷的问题做出一次性贡献。

在 GitHub 上编辑示例