首页 > 解决方案 > Gatsby 在生产环境中动态重建静态页面

问题描述

我写了我的第一个盖茨比页面。我也使用 Laravel 作为后端服务器。在我的项目中,我有很多 slug 页面。我使用 createPages 和 api 连接来创建它们。用户可以添加图像、音频文件和 pdf 等文件。发生这种情况时,页面应更改一些内容并在指定地址上显示此文件。开发版本工作正常(我绑定按钮以启动 npm run refresh)。我使用了 gatsby 刷新端点并添加到脚本中:

"refresh": "curl -X POST http://localhost:8000/__refresh"

它工作正常。但我不知道如何更改它以在生产构建中正确使用它。谁能帮我?谢谢

标签: reactjsapinpmrefreshgatsby

解决方案


ENABLE_GATSBY_REFRESH_ENDPOINT环境变量仅适用于开发。根据文档

在本地开发期间,刷新源内容而不重新启动开发服务器会很有用。为此,Gatsby 公开了一个名为ENABLE_GATSBY_REFRESH_ENDPOINT.

你需要的是一个webhook。基本上,Webhook 是应用程序触发在 CMS 中实时发生的更改的一种方式。

每个 CMS 都有自己的实现 webhook 的方式,但想法是在 CMS 发生更改时触发构建过程。


推荐阅读