Javascript 盖茨比:手动重新执行页面查询

Javascript 盖茨比:手动重新执行页面查询,javascript,graphql,gatsby,headless,craftcms,Javascript,Graphql,Gatsby,Headless,Craftcms,您知道是否可以手动重新执行盖茨比页面查询(正常查询)? 注意,这应该在开发模式下发生,同时运行gatsby develop 背景信息:我正试图建立一个与盖茨比和无头CMS(在我的例子中是工艺CMS)的草稿环境。我想让盖茨比开发在赫罗库身上运行。CMS请求一个Gatsby页面,将一个特定的草稿标记作为URL参数传递,然后应该重新执行页面查询,使用该标记从CMS而不是发布的内容重新获取草稿内容 我通过gatsby config.js中定义的中间件连接到令牌请求。这都是基于 我试过了 createSc

您知道是否可以手动重新执行盖茨比页面查询(正常查询)?
注意,这应该在开发模式下发生,同时运行
gatsby develop

背景信息:我正试图建立一个与盖茨比和无头CMS(在我的例子中是工艺CMS)的草稿环境。我想让盖茨比开发在赫罗库身上运行。CMS请求一个Gatsby页面,将一个特定的草稿标记作为URL参数传递,然后应该重新执行页面查询,使用该标记从CMS而不是发布的内容重新获取草稿内容

我通过
gatsby config.js
中定义的中间件连接到令牌请求。这都是基于

我试过了

createSchemaCustomization({refresh:true})。然后(()=>{
sourceNodes()
})

但这会完全重新创建所有页面。我真的只希望提取/执行页面查询。

您可能正在寻找。基本上,您需要设置一个环境变量(
ENABLE_GATSBY_REFRESH_ENDPOINT
),该变量打开并公开一个能够接收
POST
请求以刷新源内容的
/\u REFRESH
webhook。只要远程数据发生更改,就可以触发这个公开的webhook,这意味着您可以在不重新启动开发服务器的情况下更新数据

您还可以使用:
curl-xpost手动触发它http://localhost:8000/__refresh

如果您需要详细说明如何在盖茨比中设置
.env
变量,请告诉我,我将提供详细说明。但您只需创建一个带有变量的
.env
文件(
启用\u GATSBY\u REFRESH\u ENDPOINT=true
),并将此代码段放入
GATSBY config.js

require("dotenv").config({
  path: `.env.${activeEnv}`,
})

当然,它只能在开发环境下工作,但在这种情况下,它符合您的要求。

您可能正在寻找。基本上,您需要设置一个环境变量(
ENABLE_GATSBY_REFRESH_ENDPOINT
),该变量打开并公开一个能够接收
POST
请求以刷新源内容的
/\u REFRESH
webhook。只要远程数据发生更改,就可以触发这个公开的webhook,这意味着您可以在不重新启动开发服务器的情况下更新数据

您还可以使用:
curl-xpost手动触发它http://localhost:8000/__refresh

如果您需要详细说明如何在盖茨比中设置
.env
变量,请告诉我,我将提供详细说明。但您只需创建一个带有变量的
.env
文件(
启用\u GATSBY\u REFRESH\u ENDPOINT=true
),并将此代码段放入
GATSBY config.js

require("dotenv").config({
  path: `.env.${activeEnv}`,
})

当然,它只能在开发环境下工作,但在这种情况下,它符合您的要求。

当您有索引页面时,需要为所有人重建

看起来您需要一些逻辑来有条件地调用
createPage
(所有数据都重新蚀刻),甚至只有条件地获取所选页面的数据

若页面的数量相对来说并没有那个么大,我会获取所有数据以获得页面更新时间。然后在循环中有条件地(几分钟内的时间-无需传递参数)调用
createPage

如果develope没有在
/\uu刷新
上调用“createPage”。。。深入研究盖茨比代码,找到修改redux
节点的逻辑和方法


。。。或者搜索可用于此场景的其他优化技术(缓存到json文件中的查询数据?)。

当您有索引页面时,需要重新生成所有数据

看起来您需要一些逻辑来有条件地调用
createPage
(所有数据都重新蚀刻),甚至只有条件地获取所选页面的数据

若页面的数量相对来说并没有那个么大,我会获取所有数据以获得页面更新时间。然后在循环中有条件地(几分钟内的时间-无需传递参数)调用
createPage

如果develope没有在
/\uu刷新
上调用“createPage”。。。深入研究盖茨比代码,找到修改redux
节点的逻辑和方法


。。。或者搜索可用于此场景的其他优化技术(缓存到json文件中的查询数据?)。

感谢您的回复!我以前尝试过刷新端点,但这也会重建所有页面,而不幸的是,我只希望重建页面查询。谢谢您的回复!我以前尝试过刷新端点,但这也会重建所有页面,不幸的是,我只希望重建页面查询。