У меня есть сайт Gatsby, который запрашивает информацию из API Wordpress REST с GraphQL для динамического создания страниц сайта. Я бы хотел, чтобы моя индексная страница была домашней страницей, которая создается динамически, т.е. home.html
Я видел этот пост, который был похож На Gatsby CMS, как я могу установить страницу о как страница индекса
Однако у них есть файл about.js
, который соответствует их странице about, то есть они могут экспортировать его как компонент и использовать его в индексе, или они могут даже просто скопировать содержимое этого файла. файл до index.js
. Домашняя страница, которую я хочу установить в качестве индекса, создается динамически и использует запрос GraphQL, который нельзя использовать вне шаблона page.js
. Поэтому я не вижу простого способа скопировать это в другой файл.
Полагаю, мой последний вариант - настроить сервер на указание файла stati c в public/home.html
и использовать его в качестве сайта root, но тот, кто публикуется в этом сообщении, пытается удержать людей от этого.
Есть идеи?
Вот страница. js шаблон, который генерирует страницы сайта:
const PageTemplate = ({ data }) => (
<Layout>
{<h1 dangerouslySetInnerHTML={{ __html: data.currentPage.title }} />}
{
renderBlocks(gatherBlocks(data.currentPage.acf.page_blocks, data))
}
</Layout>
);
export default PageTemplate;
export const pageQuery = graphql`
query ($id: String!) {
currentPage: wordpressPage(id: {eq: $id}) {
title
id
parent {
id
}
template
acf {
page_blocks {
block_type {
acf_fc_layout
cs_title
cs_text
}
wordpress_id
}
}
}
}
`;
А вот моя страница указателя:
import React from "react"
import Layout from "../components/global/Layout"
const IndexPage = () => (
<Layout>
<h1>Hi people</h1>
<p>Welcome to the Tank Gatsby site.</p>
<p>Now go build something great.</p>
</Layout>
)
export default IndexPage