Подтвердить что ты не робот

Angular2 Приложение: выберите, поскольку Google не загружает содержимое страницы

Я работаю над веб-приложением Angular2. Я использовал Angular CLI для создания приложения, а затем для его создания для prod. Я разместил сайт на AWS S3 и Cloudfront. Когда я использую инструмент "Получить как Google" у веб-мастера, он показывает только Loading....

введите описание изображения здесь

Разве Googlebot не может сканировать мой сайт?

4b9b3361

Ответ 1

была похожая проблема. Я считаю, что Google-Bot не поддерживает современные JS. Я просто активировал все прокладки, рекомендованные angular.io, см. Https://angular.io/docs/ts/latest/guide/browser-support.html, и добавил их в заголовок скрипта:

<script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/2.4.1/shim.min.js"></script>

Если вы действительно нуждаетесь во всех них, я не уверен, но в любом случае мне нужна поддержка более старого IE.

Если это работает для всех поисковых роботов, очень неясно, если вам нужно их поддерживать, вы можете попробовать https://prerender.io/. Однако они также могут просто сделать это с помощью прокладок.

Надеюсь это поможет.

Ответ 2

Поскольку ваш интерфейс не обслуживается каким-либо серверным языком, я бы рекомендовал использовать Angular2 -Universal для обслуживания статический HTML-сайт при начальной загрузке.

Вы можете проверить их quickstart и заставить его работать довольно быстро.

Ответ 3

Сначала об этом говорили в NG-Conf 2018 апр. Для слайдов нажмите здесь

Глядя на исходный код Angular.io, вот как ребята из Angular делают это согласно слайдам

 <script>
    if (window.document.documentMode) {
      // polyfill IE11 in a blocking way
      var s = document.createElement('script');
      s.src = 'generated/ie-polyfills.min.js';
      document.head.appendChild(s);
    } else if (!Object.assign) {
      // polyfill other non-evergreen browsers in a blocking way
      var polyfillUrl = "https://cdn.polyfill.io/v2/polyfill.min.js?features=default,Array.prototype.find&flags=gated&unknown=polyfill";
      // send a blocking XHR to fetch the polyfill
      // then append it to the document so that its eval-ed synchronously
      // this is required because the method used for IE is not reliable with other non-evergreen browsers
      var xhr = new XMLHttpRequest();
      xhr.addEventListener("load", function() {
        var s = document.createElement('script');
        s.type = 'text/javascript';
        var code = this.responseText;
        s.appendChild(document.createTextNode(code));
        document.head.appendChild(s);
      });
      xhr.open("GET", polyfillUrl, false);
      xhr.send();
    }
  </script>

Добавьте приведенный выше скрипт в раздел HEAD вашего индексного файла.

Стоит отметить, что если вы ответите простым добавлением CDN, вы, скорее всего, загружаете скрипт, который не нужен для большинства современных браузеров, и их следует избегать.