Graphql Netlify上部署的Gatsby站点未更新GraphCM中的数据

Graphql Netlify上部署的Gatsby站点未更新GraphCM中的数据,graphql,gatsby,netlify,Graphql,Gatsby,Netlify,我是一个使用盖茨比和GraphCM的初学者。使用盖茨比开发环境从cms获取数据很好,一切都很好。我已经在Netlify上部署了我的网站,当通过cms添加一些新内容时,内容没有更新,没有抓取 需要cms内容的组件: import React from "react" import { StaticQuery, graphql } from "gatsby" import ServicesMobileProduct from "./Services

我是一个使用盖茨比和GraphCM的初学者。使用盖茨比开发环境从cms获取数据很好,一切都很好。我已经在Netlify上部署了我的网站,当通过cms添加一些新内容时,内容没有更新,没有抓取

需要cms内容的组件:

import React from "react"
import { StaticQuery, graphql } from "gatsby"

import ServicesMobileProduct from "./ServicesMobileProduct"

const ProductsMobile = () => (
  <StaticQuery
    query={graphql`
      {
        product {
          products {
            id
            productName
            description
            price
            amount
          }
        }
      }
    `}
    render={({ product: { products } }) => (
      <>
        {products.map(({ productName, description, price, amount, id }) => (
          <ServicesMobileProduct
            key={id}
            productName={productName}
            description={description}
            price={price}
            amount={amount}
          />
        ))}
      </>
    )}
  />
)

export default ProductsMobile

从“React”导入React
从“盖茨比”导入{StaticQuery,graphql}
从“/ServicesMobileProduct”导入ServicesMobileProduct
const ProductsMobile=()=>(
(
{products.map({productName,description,price,amount,id})=>(
))}
)}
/>
)
导出默认产品移动

盖茨比是一个静态站点生成器,这意味着在构建/开发期间,它从CMS、markdown、JSON或其他数据源收集所有数据,并在
/public
文件夹中创建公共HTML输出。大致遵循此简化模式:

通常,一旦站点建立,您需要重新部署它来更新、创建或删除内容,因为站点没有使用这些新更改进行更新

你想要达到的目标被称为。webhook是应用程序在新事件实时发生时通知另一个应用程序的一种方式,例如从源中创建、删除或修改内容

在盖茨比中,一些源代码(比如DatoCMS)公开了webhook,但这只在开发模式下有效。任何CMS更改都将触发一个
gatsby develope
命令来刷新内容。当然,我们不建议只为了实现自动刷新而在盖茨比开发模式下上传网站

在构建模式下,想法非常相似,但您需要触发一个
gatsby build
+deploy,而不是运行
gatsby develope
命令。如果您使用的是任何连续部署工具(CD),如Netlify,则可以轻松实现这一点。如果您使用的是持续集成(CI)工具,如Jenkins,则需要配置一个管道来实现它


实现所需功能的另一种方法是向外部API或数据源创建异步JavaScript请求,用内容填充应用程序。这在任何环境下都能工作,但你将失去盖茨比带来的所有SEO潜力(和其他潜力)。

因为盖茨比是静态内容编译器。。。构建(部署)后,它不会获取任何内容(几乎)。。。阅读盖茨比关于构建/运行时获取的文档。。。如果您需要一些动态元素(带有运行时抓取),那么请使用apollo[就像在通常的react webapp中一样],那么我如何使用cms呢?有时我需要在部署后将cms中的新内容添加到网站。只需在内容更新后重建/重新部署即可将其转换为动态内容,或者我必须将应用程序移动到simple React应用程序?无法重建/重新部署每个更新,因为网站不适合我,而是适合已经需要网站的人。重建过程可以自动化,在更改后运行。。。由于搜索引擎优化的原因,它应该是静态的。。。也许只有一些部分是动态的?