使用Gatsby static site generator project,因为网站在webpack构建期间将内容文件呈现为html,这是否意味着对于类似博客的内容,每个新帖子都需要重新推送到服务器?
如果是这种情况,是否有人拥有该工作流程的最佳实践?
答案 0 :(得分:14)
是的,当您更改其中一个源文件时,必须重建静态网站。在数据库支持的网站(例如Wordpress)中,HTML是在每个页面请求上即时构建的,因此如果您更改数据库中的内容,则会立即反映在下一页加载的网站HTML中。 / p>
静态网站不会在每个网页请求中构建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将增加对部署插件的支持,这将进一步简化设置良好的工作流程。
答案 1 :(得分:3)
由于Gatsby仅生成静态文件,因此它也可以从文件传送系统或CDN(例如Amazon CloudFront)托管。
作为盖茨比工作流程的一部分,我发了一篇关于自动部署到S3 / CloudFront的博文: