通过 @preact/preset-vite 烘焙到 Preact 中的预渲染非常棒,而且非常容易工作。它在渲染每个路由时会自动发现要预渲染的其他 URL。
如果您有一个非常大的内容网站,包含数千甚至数万个唯一 URL,那么最好的策略是什么?在构建时预渲染所有这些 URL 似乎并不实际,因为这会花费太长时间。有没有办法定义预渲染的边界,这样它就不会遍历整个网站的每个 URL?
此外,如何处理可能对已预渲染的页面产生较大连锁反应的内容更改?例如,假设我们有一个文章页面,其中包含其他相关文章的链接。对一篇文章标题的更改可能需要重新呈现多篇其他文章以及列出该文章的任何索引页。确定受内容更改影响的所有其他 URL 可能非常困难,因此很难知道哪些 URL 需要重新呈现。
在构建时预渲染所有这些 URL 似乎并不实际,因为这会花费太长时间。
预渲染/SSG 仅在构建时运行 - 如果这不是您想要的行为,则预渲染可能不太合适。
您是否进行过测试来确认这是一个问题?对于 CI/CD 运行程序来说,在大多数环境中花费几分钟的时间是非常典型的,在几分钟内,您可以使用任何渲染到字符串实现来渲染数十万个页面,而不仅仅是 Preact 的实现。如果您遇到性能问题,请提出问题,因为我们也许可以做一些事情,但我会先确保其中存在一个问题。
有没有办法定义预渲染的边界,这样它就不会遍历整个网站的每个 URL?
不,预渲染/SSG 的目的是在每次部署时构建整个站点。