Я хочу реализовать реактивный шлем на Метеоре. Клиентская сторона работает нормально, и я вижу теги на элементе проверки - но как сделать это на стороне сервера для SEO? Я не понимаю документацию.
ReactDOMServer.renderToString(<Handler />);
const helmet = Helmet.renderStatic();
Мой код выглядит следующим образом
index.html (клиент)
<head>
<body>
<div id="target" />
</body>
</head>
main.js (клиент)
import React from 'react';
import { Meteor } from 'meteor/meteor';
import { render } from 'react-dom';
import { renderRoutes } from '../imports/startup/client/routes.jsx'
Meteor.startup(() => {
render(renderRoutes(), document.getElementById('target'));
});
Я использую React-Router для рендеринга элемента в «цель»
main.js (сервер)
Как получить теги с сервера.
import { onPageLoad } from 'meteor/server-render';
Meteor.startup(() => {
onPageLoad((sink) => {
const helmet = Helmet.renderStatic();
sink.appendToHead(helmet.meta.toString());
sink.appendToHead(helmet.title.toString());
});
});
В коде about helmet.meta.toString()
возвращается пустым. Я знаю, что нам нужно передать что-то, чтобы шлем узнал метатеги. Но как это сделать
Может кто-нибудь помочь мне понять, что мне нужно написать на сервере, чтобы это работало? Все, кроме этого, работает нормально.