Угловой универсальный серверный рендеринг, метатеги

Я переместил свой сайт в Angular universal SSR, во время моего перемещения я столкнулся с некоторыми проблемами, которые, как я думал, ng-universal исправит.

Я хочу добавить метатеги, такие как описание, ключевые слова и т. Д. (Разные для каждой страницы).

С использованием titleService так как angular предполагает, что все работает отлично, он изменил заголовок страниц. Однако, если я попадаю на домашнюю страницу и затем перехожу оттуда к другим страницам, заголовок не меняется, но когда я смотрю на источник, я вижу изменение в источнике, но нет на вкладке VIEW. Если я попадаю на страницу (или нажимаю "Обновить"), страница обновляется с правильным заголовком.

Я пытался добавить дополнительные метатеги заголовка, но ничего не работает:

this.meta.updateTag( {name: "description", content: 'test1234});

this.meta.addTag({name: 'description', content: 'Content description' });

ИЛИ ЖЕ

using vanilaJS
 var doc = (<HTMLMetaElement>document.getElementById('description'));
doc.content = "test1234";

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

0 ответов

Чтобы установить метатеги для Angular Universal-SSR (пробовал только на Angular 2), вы должны использовать Renderer. Чтобы задать, например, заголовок (или обновить его), вы можете сделать это следующим образом: Ссылка на решение

Чтобы установить метатеги, вам необходимо: 1. Импортировать средство визуализации и документ.

import { Renderer } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';

2. Добавьте эти зависимости в конструктор:

@Inject(DOCUMENT) private document: any,
private renderer: Renderer

3. Добавьте мета-теги -example

//-- Create new meta element inside of head tag
let elem = renderer.createElement(document.head, "meta");

//-- Set meta attributes
renderer.setElementAttribute(elem, 'name', 'description');
renderer.setElementAttribute(elem, 'content', 'Some test decription');
  1. Когда вы открываете "исходный код страницы", внутри тега head должно получиться так:

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