В вашем вопросе много материала, я постараюсь ответить на него шаг за шагом, если нет, пожалуйста, дайте мне знать, если вам нужно больше деталей о том, как создавать страницы, и т. Д. c, и я обновлю свой ответ чтобы добавить больше деталей, если это необходимо.
Если вы хотите изменить свой источник с Netlify на Strapi , вам нужно настроить его в вашем gatsby-config.js
, заменив плагин gatsby-plugin-netlify-cms
на что-то вроде что:
{
resolve: `gatsby-source-strapi`,
options: {
apiURL: `http://localhost:1337`,
queryLimit: 1000, // Default to 100
contentTypes: [`article`, `user`],
//If using single types place them in this array.
singleTypes: [`home-page`, `contact`],
// Possibility to login with a strapi user, when content types are not publically available (optional).
loginData: {
identifier: "",
password: "",
},
},
},
Обратите внимание, что вам придется установить нужные плагины и удалить ненужные, чтобы уменьшить пакет и улучшить производительность при использовании стартеров.
Следующим шагом является создание страниц из исходной CMS (статьи, публикации, страницы и т. Д. c) с использованием GraphQL. Может быть, этот блог поможет вам . Но в качестве краткого изложения вам нужно создать запросы в gatsby-node.js
для извлечения данных из Strapi CMS и создания страниц с использованием API Гэтсби.
Идея та же, что и у ваших стартеров, однако вместо использования gatsby-source-filesystem и используя allMarkdownRemark при создании своей страницы, вы будете использовать объект, предоставляемый Strapi CMS. Вы можете проверить запросы и доступные объекты, используя gatsby development и введя в localhost: 8000 / ___ graphql .
Имейте в виду, что вы всегда будете запрашивать данные о состоянии c (т.е. предварительно загруженные данные) из нескольких источников, поэтому при запуске команды разработки данные загружаются и доступны через GraphQL.
Дополнительную информацию можно найти в репозитории стартера .