发布于 2026-01-06 4 阅读
0

使用 On-demand Builders 在 Jamstack 上构建博客平台 DEV 的全球展示与讲述挑战赛(由 Mux 呈现):展示你的项目!

使用按需构建器在 Jamstack 上构建博客平台

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

我与 Netlify 的开发者体验团队展开了一次小型讨论,并将其记录下来,供那些有兴趣并正在考虑构建更大规模服务的人参考。

这个问题

你会如何使用 Jamstack 构建一个博客平台?一个用户可以:

  • 登录/登出
  • 创建博客文章
  • 将它们发布到各自的网址上以便分享(例如 blogplatform.com/cassidoo/mypost)

许多人认为,这就是服务器端渲染的优势所在,也是 Jamstack 的不足之处。

但是,菲尔·霍克斯沃斯却说了一些好话!

菲尔的回应

这个问题包含两部分:

1. Jamstack 能否为众多用户提供用户生成和以用户为中心的内容?

是的。app.netlify.com通过静态部署的应用外壳和面向超过 200 万用户及团队的 API 来实现这一点。它既动态又个性化。

但是……博客文章最好不要以 JSON 格式提供,因为 JSON 格式会在客户端渲染,就像app.netlify.com示例中的内容那样。所以,第二个问题……

2. Jamstack 能否为用户生成和以用户为中心的内容提供渲染后的内容?

直到按需建房(ODB)及其相关企业出现,才实现了规模化发展。

按需构建器是一种无服务器功能,它通过将内容分为两类来加快大型网站的构建速度:关键内容在构建时自动编译,延迟内容则根据用户请求构建。按需构建器支持网站增量式构建,并且可以与任何框架兼容。

现在看来,这种架构确实相当吸引人。它就像是我之前提到的Virtual Lolly示例的略微升级版,我们通过 ODB 添加了身份验证和渲染功能。

博客平台网站示意图

由于构建过程中生成的核心页面数量控制在几百个以内(例如,主要样板页面和用户界面页面,以及可能最受欢迎的几百篇博客文章页面),因此可以在几个小时的时间间隔内轻松重新部署,从而定期预先生成最受欢迎的文章和相关文章的“新鲜”视图,以满足需求。

以上所有架构目前均可行,但需要解决一个问题:在类似 `/posts/posts` 的 URL 上列出每个用户的最新文章/{USER}/POSTS。这需要 ODB 支持 URL 过期机制,以便在添加新文章时更新 URL。不过,该视图可以通过无服务器函数边缘处理器实现。通过 ODB 访问博客文章页面本身没有问题(直到我们添加修改已发布文章的功能,届时将适用与上述相同的逻辑)。

谢谢你,菲尔!接下来呢?

哇!我喜欢学习,你呢?

如果您想了解更多关于按需构建器的应用、它们实现的架构、无服务器技术等等,以下是一些不错的入门资源:

文章来源:https://dev.to/netlify/architecting-a-blogging-platform-on-the-jamstack-with-on-demand-builders-27nj