2016-10-05 37 views
-1

我使移动网站的静态部分符合放大器的要求,但我不确定是否还有其他必要的步骤。CDNed AMP页面的正确链接URL

特别是,通过重写网页内部链接到页面的CDN URL,强制用户通过Google CDN加载页面是否可行(或者甚至是必须的?)?即类似<a href="http_s_://cdn.ampproject.org/c/s/example.net/b.html">...</a>?或者会以某种方式搞砸Google的爬虫?

事实上,我已经试过了,但是当点击链接时,即使当前页面是通过其CDN URL加载的,页面仍会在新标签页中打开。那是故意的吗?我尝试使用target =“_ top”,但显然这是不允许兼容amp-html。

那么这里推荐的解决方案是什么?

+0

基于此[链接](http://stackoverflow.com/a/34757325/5832311),要使用AMP项目CDN,可以通过以下格式的URL访问:https://cdn.ampproject。 org/c/s//'。注意,'/ s'部分是可选的并且表示一个安全的源,所以如果源不是通过https服务的,那么你可以使用:https://cdn.ampproject.org/c/ /'。具有AMP同等效果的示例网址:https://cdn.ampproject.org/c/s/amp.theguardian.com/childrens-books-site/2016/jan/12/sugar-tax-andy-mulligan-liquidator ' – abielita

回答

1

当然没有必要链接到AMP缓存的页面副本。如果你愿意,你可以,理论上CDN链接应该无限期地工作。每AMP Cache Guidelines,AMP的高速缓存:

  • 承诺永远保持URL空间(甚至超出了缓存的生存期):
    • 这可以通过URL空间捐赠给值得信赖的实现第三方实体,如archive.org。
    • 这意味着,如果高速缓存决定不再运行,则URL应该重定向到源URL或由另一个高速缓存提供服务。

我选择让我的AMP页面直接链接到我自己的我的其他AMP网页的副本,但是,因为我曾与谷歌AMP缓存一个小问题没能成为我的一些图片并希望确保如果由于其他错误或验证问题导致缓存不当地提供页面,我将能够快速修复问题。最终,您是否要链接到规范的非AMP页面,AMP页面或缓存的AMP页面副本。

另请参见this amphtml feature request请求能够请AMP缓存重写链接,以尽可能指向CDN或非CDN版本的页面。推测更为疯狂,我可以想象有一天浏览器会提供在浏览时自动进行重写。我没有尝试过,但似乎已经有at least one Chrome extension that loads AMP versions of pages when they're available