是否可以将 AMP 与自定义 CDN 一起使用?

Is it possible to use AMP with a custom CDN?

我们对使用 AMP 进行加载时间优化很感兴趣,但是对于依赖外部 CDN 以及让我们的页面被我们无法控制的组织(即 Google)缓存存在一些担忧。是否可以使用 AMP 工具包创建一个页面,利用性能优化,但允许我们保留对 CDN 和缓存策略的控制?

它是否实际验证为 AMP 对我们来说并不重要,只要它速度快且在我们的控制之下即可。

谢谢。

这取决于您的要求。有效的 AMP 页面需要从 Google 的服务器提供 AMP 脚本。

来自documentation

AMP HTML documents MUST:
(...)
Contain a <script async src="https://cdn.ampproject.org/v0.js"></script> tag 
as the second child of their <head> tag (this includes and loads the AMP JS 
library).

据我所知,在本地或从另一个 CDN 嵌入 AMP 脚本将正确呈现您的页面 - 但它不再是有效的 AMP。您可以将 AMP 用作移动工具包,最好是通过分叉 AMP 项目并编辑 validator 使其正常工作。当然,Google 不会将生成的页面评估为 AMP,拒绝搜索引擎中的任何特权,也不会将您包含在 AMP 缓存中。

换句话说:如果您想使用 AMP,Google 要求您告诉他们对每个 AMP 页面的每次调用并依赖于他们的 CDN。