对于 AMP HTML,将 link 规范 href 属性设置为井号 (#) 是否合法?

With AMP HTML, is it legitimate to set the link canonical href attribute to pound (#)?

如下所示将规范 link 设置为井号是否合法,或者我是否需要输入物理页面名称?

<link rel="canonical" href="#">

测试时,英镑设置不会生成验证错误(ala #development=1)。在我的场景中,使用此布局文件的页面 将不会 具有备用 "regular HTML" 版本。唯一的版本将是 AMP HTML 版本。

对于其他上下文,我正在试验一个将使用 AMP HTML 的 MVC 网站。为了使我的布局文件保持简单,我宁愿使用井号而不是提取子页面名称并将其应用于 href 属性。我知道如何通过如下代码将 URL 应用于部分视图:

<link rel="canonical" href="@HttpContext.Current.Request.Url.AbsoluteUri">

我只是想知道使用井号代替 AMP HTML 是否合法。谢谢。

来自documentation

Required markup

AMP HTML documents MUST:

  • contain a <link rel="canonical" href="$SOME_URL" /> tag inside their head that points to the regular HTML version of the AMP HTML document or to itself if no such HTML version exists.

因此,您不应使用 href="#",而是让它指向自身,以便与 AMP 规范保持一致。

验证在不断发展,验证器今天并不能解决所有问题。使用“#”或任何相关 URL 的问题在于,当此文档在其他地方提供时,例如 cdn.ampproject.org,相关 URL 将不再指向您想要的规范。您应该改用绝对 URL <link rel=canonical href="URL">.