Законно ли при использовании AMP HTML устанавливать для канонического атрибута ссылки href значение фунта (#)?

Законно ли установить каноническую ссылку на символ фунта, как показано ниже, или мне необходимо ввести физическое имя страницы?

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

При тестировании установка фунта не приводит к ошибке проверки (например, #development=1). В моем сценарии страница, использующая этот файл макета, не будет иметь альтернативную версию «обычного HTML». Единственной версией будет версия AMP HTML.

Для дополнительного контекста я экспериментирую с сайтом MVC, который будет использовать AMP HTML. Чтобы сделать мой файл макета простым, я бы предпочел использовать символ решетки, а не извлекать имя дочерней страницы и применять его к атрибуту href. Я знаю, как применить URL-адрес к частичному представлению с помощью такого кода:

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

Мне просто любопытно, допустимо ли использование символа фунта вместо этого в AMP HTML. Спасибо.


person Ken Palmer    schedule 02.11.2015    source источник


Ответы (2)


Из документации:

Необходимая разметка

HTML-документы AMP ОБЯЗАТЕЛЬНО:

  • содержат тег <link rel="canonical" href="$SOME_URL" /> внутри своего заголовка, который указывает на обычную HTML-версию HTML-документа AMP или на себя, если такой HTML-версии не существует.

Поэтому вместо использования href="#" вы должны указать на себя, чтобы соответствовать спецификациям AMP.

person not_a_bot    schedule 02.11.2015

Валидация развивается, сегодня валидатор не улавливает все проблемы. Проблема с использованием «#» или любого относительного URL-адреса заключается в том, что когда этот документ обслуживается в другом месте, например, на cdn.ampproject.org, этот относительный URL-адрес больше не будет указывать на предполагаемый канонический. Вместо этого вы должны использовать абсолютный URL-адрес <link rel=canonical href="URL">.

person Gregable    schedule 14.02.2016