Должны ли страницы AMP-HTML загружать библиотеку JavaScript с ampproject.org?

В документации указано, что HTML-документы AMP ДОЛЖНЫ

  • Содержат тег <script async src="https://cdn.ampproject.org/v0.js"></script> в качестве последнего элемента в заголовке (включая и загружает библиотеку AMP JS).

Означает ли это, что я не могу использовать внутреннюю копию этого файла (например, для использования в ограниченной сетевой среде без доступа в Интернет)?


person Jonas Köritz    schedule 21.04.2016    source источник
comment
Мне лично не нравится, что Google может отслеживать моих посетителей. Это тоже аргумент, чтобы разместить его самостоятельно.   -  person ibotty    schedule 21.04.2016
comment
Вы, безусловно, можете предоставить копию, используя свой собственный метод (например, ограниченный, сетевой). Но, чтобы быть действительным документом AMP, он (также) должен использовать Google CDN, управляемый указанным выше JS. Это ответ на ваш вопрос, или мне не хватает какой-то другой части вашего вопроса?   -  person Jay Gray    schedule 21.04.2016
comment
Значит, документ AMP-HTML будет работать безупречно, даже если скрипт не обслуживается Google? Примет ли ее Google Search Console как действительную страницу AMP?   -  person Jonas Köritz    schedule 21.04.2016
comment
Нет, вы должны использовать скрипт Google JS CDN, чтобы он стал действительным AMP-документом. Однако, если вам также необходимо сделать документ доступным для пользователей с ограниченным доступом в Интернет, вы можете обработать это, используя свой собственный метод. Такой подход был бы вариантом canonical url для вашего управляемого доступа к сети.   -  person Jay Gray    schedule 21.04.2016
comment
Не стесняйтесь размещать это как ответ;)   -  person Jonas Köritz    schedule 21.04.2016


Ответы (1)


Чтобы быть действительным AMP-документом, вы должны использовать тег <script async src="https://cdn.ampproject.org/v0.js"></script>.

Однако в действующем документе AMP вы также можете указать канонический URL-адрес. Обычно канонический URL-адрес представляет собой HTML-документ, в котором используются службы, которые не разрешены архитектурой AMP (например, настроенный JavaScript, такой как Bootstrap JS для меню). Вы также можете назначить документ AMP каноническому тегу, а затем передать его людям, у которых нет неограниченного доступа к Интернету (и, следовательно, к Google CDN).

person Jay Gray    schedule 21.04.2016
comment
Можно ли хотя бы использовать целостность подресурсов в теге скрипта? - person ibotty; 25.04.2016
comment
Не совсем уверен, о чем вы спрашиваете. Не могли бы вы показать пример утверждения? AMP JS имеет параметры, поэтому вам нужно увидеть ваш пример, чтобы иметь возможность ответить. - person Jay Gray; 25.04.2016
comment
Чтобы cdn не возился с файлом javascript: взломайте . mozilla.org/2015/09/subresource-integrity-in-firefox-43 - person ibotty; 25.04.2016
comment
Я считаю, что такая концепция возможна. У меня где-то есть пример; Дай мне найти его, и я отправлю ответ. - person Jay Gray; 25.04.2016
comment
Вот пример использования Bootstrap CDN для использования Font Awesome: <link href="https://maxcdn.bootstrapcdn.com/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet" integrity="sha384-<your key>" crossorigin="anonymous">. Очевидно, это для тега <link>. Насколько мне известно, вы не можете квалифицировать тег Google <script>. - person Jay Gray; 25.04.2016
comment
Пожалуйста, посмотрите первый пример в сообщении, на которое я указал. Это именно то, что тег <script> с целостностью подресурсов - person ibotty; 25.04.2016
comment
Настоящий вопрос в том, будет ли Google проверять его, если установлен атрибут script integrity. - person ibotty; 25.04.2016
comment
TTBOMK, вы не можете добавить атрибут integrity в Google CDN <script>. Проводя свое исследование, я нашел пример добавления атрибута integrity к другому CDN - bootstrap - и показал этот пример. Извините, если что запутал. - person Jay Gray; 25.04.2016
comment
Это отстой. Спасибо за ответ! - person ibotty; 26.04.2016