7

使用Gatsby 静态站点生成器项目,由于站点在 webpack 构建期间将内容文件呈现为 html,这是否意味着对于博客之类的东西,每个新帖子都需要重新推送到服务器?

如果是这种情况,是否有人对该工作流程有最佳实践?

4

2 回答 2

16

是的,当您更改其中一个源文件时,必须重建静态站点。在数据库支持的网站(例如 Wordpress)中,HTML 是在每个页面请求上即时构建的,因此如果您更改数据库中的内容,这会立即反映在下一页加载时网站的 HTML 中。

静态网站不会在每个页面请求上构建 HTML。这就是它们如此快速(且安全)的原因,因为它们的工作量很少。服务器只是从磁盘读取文件。但这确实意味着当您更改或添加到站点的内容(例如新的博客文章)时,您确实需要重建站点。

有许多很好的工作流程来处理这个“重建和推送到服务器”过程。

对于我的博客 (bricolage.io),我只是在本地构建站点,然后将构建文件提交到 Git,然后将这些更改拉到我的服务器上。我有一个网络服务器 (caddyserver.com) 设置来服务公用文件夹。这个有点手动的过程很有效,因为我很少更新我的网站。

对于 Github Pages,我将添加一个简单的deploynpm 脚本,例如"deploy": "gatsby build --prefix-links && gh-pages -d public". 看看我为 react-headroom 做了什么https://github.com/KyleAMathews/react-headroom/blob/master/website/package.json

有许多静态网站托管公司为 Gatsby 内置了工作流程。如果它们符合您的需求,我强烈推荐它们!

请参阅这些博客文章:

同样在接下来的几个月中,Gatsby 将增加对部署插件的支持,这将进一步简化良好工作流程的设置。

于 2016-06-14T18:00:58.773 回答
3

由于 Gatsby 仅生成静态文件,因此它也可以从文件传输系统或 CDN 托管,例如 Amazon CloudFront。

作为 Gatsby 工作流程的一部分,我发表了一篇关于自动部署到 S3/CloudFront 的博文:

于 2017-03-21T06:34:20.987 回答