使用Gatsby 静态站点生成器项目,由于站点在 webpack 构建期间将内容文件呈现为 html,这是否意味着对于博客之类的东西,每个新帖子都需要重新推送到服务器?
如果是这种情况,是否有人对该工作流程有最佳实践?
使用Gatsby 静态站点生成器项目,由于站点在 webpack 构建期间将内容文件呈现为 html,这是否意味着对于博客之类的东西,每个新帖子都需要重新推送到服务器?
如果是这种情况,是否有人对该工作流程有最佳实践?
是的,当您更改其中一个源文件时,必须重建静态站点。在数据库支持的网站(例如 Wordpress)中,HTML 是在每个页面请求上即时构建的,因此如果您更改数据库中的内容,这会立即反映在下一页加载时网站的 HTML 中。
静态网站不会在每个页面请求上构建 HTML。这就是它们如此快速(且安全)的原因,因为它们的工作量很少。服务器只是从磁盘读取文件。但这确实意味着当您更改或添加到站点的内容(例如新的博客文章)时,您确实需要重建站点。
有许多很好的工作流程来处理这个“重建和推送到服务器”过程。
对于我的博客 (bricolage.io),我只是在本地构建站点,然后将构建文件提交到 Git,然后将这些更改拉到我的服务器上。我有一个网络服务器 (caddyserver.com) 设置来服务公用文件夹。这个有点手动的过程很有效,因为我很少更新我的网站。
对于 Github Pages,我将添加一个简单的deploy
npm 脚本,例如"deploy": "gatsby build --prefix-links && gh-pages -d public"
. 看看我为 react-headroom 做了什么https://github.com/KyleAMathews/react-headroom/blob/master/website/package.json
有许多静态网站托管公司为 Gatsby 内置了工作流程。如果它们符合您的需求,我强烈推荐它们!
请参阅这些博客文章:
同样在接下来的几个月中,Gatsby 将增加对部署插件的支持,这将进一步简化良好工作流程的设置。
由于 Gatsby 仅生成静态文件,因此它也可以从文件传输系统或 CDN 托管,例如 Amazon CloudFront。
作为 Gatsby 工作流程的一部分,我发表了一篇关于自动部署到 S3/CloudFront 的博文: