我们正在构建一个网站,从GraphQL API中获取数据,该网站的内容有些动态,因此我们对某些内容使用Apollo Client,与静态网站相比,这会使该网站有些慢,并且不会很棒的用户体验。
我尝试用gatsby-source-graphql绑定内容,以进行一个查询,例如获取可以每隔几小时或每几周更新一次的项目列表。必须构建以使这些数据始终保持静态并不是一个很好的解决方案,因为构建时间有限,并且我们希望对内容进行某种程度的更新。
自定义数据源插件是否可以解决此问题?还是还有其他用于内容更新的解决方案,以便我们不必重建?
答案 0 :(得分:1)
您要实现的目标称为webhook,但是由于盖茨比的局限性(作为静态网站生成器),必须重建网站以收集新数据,以便基于以下内容创建新的静态页面您更新的内容。
如果您想到Gatsby的工作方式(在构建时会获取所有数据源并生成包含所有JavaScript包和逻辑的静态HTML),您会发现,如果没有以下内容,您将无法绕过新的数据获取重建网站。
一个Webhook将在您的CMS和您的站点之间建立连接,一旦创建,更新或删除了新数据,您就可以在那里触发构建。
如果您的内容来自外部API,并且您不关心SEO,则一旦用户进入您的网站以使用您的内容填充它,就可以创建一个API请求,但是,您将失去所有的优势盖茨比提供了。