Angular Universal - Заголовок не виден в View Source, но может быть виден во время проверки - PullRequest
0 голосов
/ 09 января 2019

У меня есть приложение Angular 7 с рендерингом на стороне сервера с использованием Angular Universal. (в основном сопровождаемый учебник https://blog.angular -university.io / angular-universal / )

В настоящее время код развернут и работает на nodejs (4000 - с обратным прокси-сервером, использующим сервер apache2, чтобы я мог использовать порт 80 - упомяну это в случае, если это имеет значение).

Внутри моего компонента (все мои компоненты глубоко вложены), я использую код как показано ниже

....
constructor(private title: Title){}
....

ngOnInit() {
   this.title.setTitle('my title')
}

Пожалуйста, отметьте (http://public.ecokrypt.com). Если я нажимаю «Панель инструментов», я вижу, что заголовок изменен в моем браузере. Я также вижу новый заголовок с «Проверять». Но если я пытаюсь «Просмотреть исходный код», это не покажи мне новый заголовок. Он всегда показывает мне данные с моей первой страницы по умолчанию (login => title 'User'). Обратите внимание, что мой index.html содержит «EcokryptUiapp» в качестве заголовка, моя первая страница входа по умолчанию содержит «User» в качестве заголовка. Так что в первый раз он рендерится с сервера.

Кажется, после моей первой страницы я никогда не получаю никакого рендеринга на стороне сервера. Та же проблема возникает и с мета-тегами facebook / twitter. В связи с этим, если я пытаюсь отладить ссылку на Facebook / проверить твиттер-карту, это выдает ошибку.

Я также проверил свою локальную среду разработки, просмотр источника всегда дает мне первую страницу, содержание никогда не меняется.

Я что-то пропустил? Я застрял на этом в течение последних 3 дней, просто не могу найти никакого решения. Любая помощь с благодарностью.

Ответы [ 2 ]

0 голосов
/ 16 января 2019

После множества пробных ошибок я обнаружил проблему. Некоторые, где глубоко внутри моего кода, я использовал расположение Windows и получал ошибку на стороне сервера из-за того же. Таким образом, после первой страницы по умолчанию ничего не получалось с сервера Все оценивалось только на стороне браузера.

Надеюсь, кто-то может найти это полезным.

0 голосов
/ 09 января 2019

Сначала отображается HTML, а JavaScript выполняется позже на веб-сайтах на основе JavaScript-Framework (Angular, React ..). Поисковые системы читают визуализированный HTML-код, в котором отсутствует заголовок и большая часть контента, который создается позже JavaScript. Хотя с 2018 года Google сканирует страницу с использованием JavaScript и CSS, но не со всеми поисковыми системами.

Вам нужно настроить приложение Angular на стороне сервера, используя Node.js, чтобы иметь SEO.

Используйте Angular Universal for SEO пакет с Node.js, чтобы иметь приложение Angular на стороне сервера.

Ссылка: https://snipcart.com/blog/angular-seo-universal-server-side-rendering

...