【问题标题】:Gatsby watchMode and overlayDrafts not working on S3 static websiteGatsby watchMode 和 overlayDrafts 在 S3 静态网站上不起作用
【发布时间】:2021-10-15 17:54:22
【问题描述】:

我与 Gatsby 有一个项目,它的“构建”部署到具有静态网站托管的 AWS S3 存储桶。

我的 Gatsby 项目正在使用 gatsby-source-sanity 插件,它从 Sanity.io 数据集获取数据。

在我的非生产阶段,我希望有一个预览和 watchMode,这样我就不会在每次更改时都构建和部署应用程序。

gatsby-config.js 中的此配置中:

{
      resolve: "gatsby-source-sanity",
      options: {
        projectId: process.env.GATSBY_SANITY_PROJECT_ID,
        dataset:
          process.env.GATSBY_STAGE === "production" ||
          process.env.GATSBY_STAGE === "master" ||
          process.env.GATSBY_STAGE === "preview"
            ? "production"
            : "dev",
        token: process.env.SANITY_TOKEN,
        overlayDrafts:
          process.env.GATSBY_STAGE !== "production" &&
          process.env.GATSBY_STAGE !== "master",
        watchMode:
          process.env.GATSBY_STAGE !== "production" &&
          process.env.GATSBY_STAGE !== "master",
      },
    },

当我在 localhost 上运行项目并在 Sanity Documents 中进行更改时,我会立即获得更改,但我没有在部署的版本上获得更改。

如何在 S3 存储桶上使用 watchMode?​​p>

【问题讨论】:

  • 您的意思是“本地更改”是指gatsby develop 还是gatsby build 命令?

标签: amazon-s3 gatsby sanity


【解决方案1】:

您不能在生产环境中使用watchMode,因为该站点已经构建。

gatsby develop 环境中,Gatsby 公开了一个 Web 套接字,该套接字可以侦听来自源的数据更改,以在开发模式下重新触发站点。但是,在gatsby build, 中不能,因为静态页面已经构建。要触发数据源的新刷新,您需要触发新的部署。

这可以使用 webhook 完成,它会侦听数据更改以触发存储桶中的新部署。

相关文章:

【讨论】:

    猜你喜欢
    • 2021-05-21
    • 1970-01-01
    • 2016-06-19
    • 2014-08-11
    • 2019-12-22
    • 2017-08-05
    • 2019-11-19
    • 1970-01-01
    • 2022-10-06
    相关资源
    最近更新 更多