silverstripe / silverstripe-nextjs
Silverstripe NextJS 功能
dev-main
2021-12-02 22:37 UTC
Requires
This package is auto-updated.
Last update: 2024-08-29 06:12:53 UTC
README
此模块提供了一些集成 Silverstripe CMS 与 NextJS 的基本功能。其主要目的是与相关的 Silverstripe/NextJS 开发工具包 配合使用。
功能
-
配置静态构建(即在构建时静态生成的页面子集)
-
提供基于令牌的内容预览(完整实现由 Silverstripe/NextJS 开发工具包 提供)
-
仅限 Fluent:从 URL 中删除语言环境,让 NextJS 本地处理
-
为 Silverstripe/NextJS 开发工具包 内部所需的几个自定义查询和字段。
静态构建配置
NextJS 支持 增量静态重生成(ISR),它只是静态发布网站上所有页面的子集,其余的则在请求时间按需生成。此模块允许您设计策略,确定应包含在初始静态构建中的内容。
限制静态构建
每个收集器都有自己的 Limit
字段,但汇总构建也有一个,如上所示。汇总限制将始终覆盖每个收集器的单个限制。
预览构建
您可以通过点击“预览”选项卡来查看将基于当前收集器列表包含在构建中的内容。
创建新的策略
您只需要继承 StaticBuildCollector
类,在 $db
中定义任何可以作为参数使用的字段(Limit
已经包含在内),然后定义一个只需返回一个 Limitable
实例的 collect()
方法。
class HighlyCommentedPagesCollector extends StaticBuildCollector { public function collect(): Limitable { return Page::get() ->filter('Comments.Count():GreaterThan', 5) ->limit($this->Limit); } }
-
最近页面收集器:获取最后 X 个编辑的页面(例如,在 CMS 中最近修改的内容将静态构建)
-
部分收集器:从网站结构中的给定部分获取 X 个页面(例如,在
products/
部分中发布所有内容)