Шлем с развязанным CMS (Drupal) - PullRequest
0 голосов
/ 14 апреля 2020

Я создал сайт на CMS (Drupal) с приложениями React. Я использую шлем для генерации метаданных (заголовок / описание) из моих компонентов / дочерних компонентов.

В компонентах я использую этот код:

  <Helmet>
    <title>{...my custom title...}</title>
    <meta name="description" content={...my custom description...} />
  </Helmet>

Если я анализирую код в Dev Tools из Chrome, я вижу, что метаданные обновляются.

Если я анализирую исходный код страницы, метаданные не обновляются. Эти метаданные создаются вне приложения React в разделе HTML. Таким образом, заголовок и описание метаданных сохраняют значения по умолчанию.

Каков хороший метод для "обновления" метаданных в разделе HTML? Мне нужно обновить только определенные c метаданные (заголовок, описание, канонический ...), остальные элементы раздела head генерируются CMS.

Спасибо за ваши рецепты и помощь.

1 Ответ

0 голосов
/ 14 апреля 2020

Вы путаете код на стороне клиента и код на стороне сервера. если вы не выполняете SSR (рендеринг на стороне сервера) своих страниц, Helmet будет работать на стороне клиента (с javascript обновлением DOM). Поэтому, когда вы просматриваете источник страницы, вы не увидите заголовок и описание в вашей CMS.

Хорошая новость заключается в том, что большинство сканеров сегодня могут запускать javascript и читать метаданные вашего шлема.

Итак, чтобы ответить на ваш вопрос: вам нужно будет отреагировать на реакцию на стороне сервера и выпить гидратацию на переднем торце, чтобы увидеть вывод шлема на источнике html.

. Другое решение - сервер -side визуализирует только оболочку страницы (тело заголовка и один div с id для реагирования) и управляет разделом <head> вне реагирования. Это немного проще, чем реагировать на рендеринг на стороне сервера.

...