Gatsby Build не генерирует html для нестраничных компонентов - PullRequest
1 голос
/ 17 января 2020

У меня есть страница в индексе. js в gatsby со следующей структурой:

export default () => {
  return (
    <Layout>
      <h1>Hello World</h1>
    </Layout>
  );
};

Когда я запускаю gatsby build, он генерирует индекс. html в публикации c. Когда папка publi c обслуживается, все работает хорошо.

Моя проблема в том, что сгенерированный html не имеет содержимого, которое является частью Layout. Он генерирует что-то похожее на следующее:

<html>
<head>
.
.
.
</head>
<body>
<div id="___gatsby"><h1>Hello World</h1></div>
// Some scripts
</body>
</html>

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

Таким образом, даже когда я запускаю «Fetch as Google», я получаю значение выше HTML. Не будет Google индексировать над контентом и пропустит другой контент, который является частью Layout.

Какой смысл создавать страницы c? Или есть другой способ генерации?

1 Ответ

1 голос
/ 17 января 2020

Проблема заключалась в том, что при использовании адаптивных классов, таких как https://material-ui.com/components/hidden/

Гэтсби не будет включать их как часть html, поскольку это невозможно.

...