Gatsby + Contentful本地开发如何不重启服务器重跑GraphQL查询?
Gatsby + Contentful 本地开发无需重启服务刷新内容方案
以下是3种可直接落地的快速方案,效率远高于重启npm run dev服务:
- 方案1:手动触发刷新(零配置,最省事)
你在Contentful后台编辑并发布内容后,直接在本地浏览器访问http://localhost:8000/__refresh回车即可,Gatsby会自动触发源数据拉取、GraphQL查询重算,页面会自动刷新展示最新内容,全程仅需数秒。 - 方案2:配置Webhook实现自动刷新(一次配置永久生效)
- 打开项目根目录的
gatsby-config.js,找到gatsby-source-contentful插件的配置项,新增2个参数:enableWebhookProcessing: true、webhookSecret: 自定义的任意字符串 - 用公网端口转发工具将本地8000端口暴露到公网,获取公网访问地址
- 进入Contentful后台的Webhook配置页,新建Webhook:触发地址填
{你的公网地址}/__refresh,触发事件勾选内容发布、取消发布、删除类事件,Secret字段填你刚才自定义的字符串
配置完成后,只要你在Contentful后台发布内容变更,就会自动触发Gatsby刷新数据,无需手动操作。
- 打开项目根目录的
- 方案3:开启预览模式获取实时草稿内容(适合频繁改内容的场景)
在gatsby-node.js中配置预览路由,对接Contentful的预览API,所有内容直接从Contentful实时拉取,不走Gatsby的构建缓存,编辑内容后无需触发任何刷新操作,切换页面即可看到最新内容,支持直接预览未发布的草稿内容。
内容的提问来源于stack exchange,提问作者Casey L
相关产品推荐
相关产品推荐

