盖茨比静态网站创。 & 发布新内容

Gatsby static site gen. & publishing new content

使用 Gatsby static site generator project,因为网站在 webpack 构建期间将内容文件渲染到 html,这是否意味着对于像博客这样的东西,每个新的 post 都需要新推送到服务器?

如果是这样的话,有人有该工作流的最佳实践吗?

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

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

处理这个 "rebuild & push to server" 过程有很多好的工作流程。

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

对于 Github 页面,我将添加一个简单的 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 工作流程。如果它们符合您的需求,我强烈推荐它们!

查看这些博客 posts:

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

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

我写了一篇博客post,内容是关于自动部署到 S3/CloudFront 作为 Gatsby 工作流的一部分: