В Angular 4/5 вместо предварительной обработки каждого запроса можно предварительно обработать только запрос, поступивший из сканера Facebook и Twitter

В Angular 4/5 вместо предварительной обработки каждого запроса можно предварительно обрабатывать только те запросы, которые поступают от сканера Facebook и Twitter, т.е. когда пользователь публикует эти URL-адреса в Facebook или Twitter. Я думал, что если мы сможем реализовать что-то подобное, используя обратный прокси-сервер, где, если запрос поступит от бота Facebook или Twitter, я смогу обслуживать их из другой среды, которая предварительно отображает код Angular.

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

1 ответ

Решение

Итак, я нашел 2 решения.

  1. Сканеры Google, Facebook, Twitter и т. Д. Имеют своего собственного агента пользователя, т.е.
Googlebot
bingbot
twitterbot
facebookexternalhit
linkedinbot

Итак, в apache или nginx мы можем написать условие для предварительного рендеринга только запроса, поступающего от бота.

  1. Создайте приложение на любом языке, чтобы динамически обслуживать только файл index.html приложения Angular, в который вы встраиваете метатеги og во время выполнения относительно запрошенного URL.

    Надеюсь, что это решение кому-то поможет.

Другие вопросы по тегам