lukaskleinschmidt / kirby-resolve
Kirby Resolve
1.0.2
2020-04-23 08:02 UTC
Requires
This package is auto-updated.
Last update: 2024-09-23 17:33:41 UTC
README
即使是大型内容结构或多语言网站,也能实现快速的页面路由。
商业用途
此插件是免费的。如果您在商业项目中使用它,请考虑捐赠。
它是如何以及为什么工作的?
让我们想象以下内容结构。
. ├─ 📁 1_photography │ ├─ 📁 1_sky │ ├─ 📁 2_ocean │ ├─ 📁 3_desert │ ├─ 📁 4_mountains │ ├─ 📁 5_waterfall │ ├─ 📁 6_plants │ └─ 📁 7_landscape │ ├─ 📄 album.de.txt # Slug: landschaft │ └─ 📄 album.en.txt ├─ 📁 2_about ├─ 📁 3_contact ├─ 📁 error └─ 📁 home
为了解决 photography/landscape
,Kirby 需要索引 1_photography
目录下的所有子文件夹,以找到正确的文件夹 📁 1_photography/7_landscape
。这对小型网站来说不是什么大问题,但随着您添加更多子页面,所需时间必然会不断增加。在多语言网站上,这会更糟,因为除了索引目录外,Kirby 还必须检查内容文件中存储的 slug。
此插件通过将请求路径映射到已解析的页面来缓存请求。通过从目录创建页面对象,我们可以跳过之前需要的所有索引。
{ "photography/landscape": { "dir": "1_photography/7_landscape", "lang": "en", }, "de/fotografie/landschaft": { "dir": "1_photography/7_landscape", "lang": "de", } }
当然,性能提升取决于您的内容结构以及您是否有多个语言。
❕ This plugin only reduces the time needed to resolve the initial requested page
话虽如此,它不会加快您在模板中做的任何事情。因此,我强烈建议除了此插件外,还使用默认的 页面缓存 以获得最佳结果!
以下钩子将刷新缓存
page.changeNum:before
page.changeSlug:before
page.changeStatus:before
您还可以在您的配置中禁用此插件。
<?php return [ 'lukaskleinschmidt.resolve.cache' => false, ];
注意事项
- 它不适用于所有根页面。如果您想了解条件,请查看
isResolvable
函数。
安装
下载
下载并将此存储库复制到 /site/plugins/resolve
。
Git 子模块
git submodule add https://github.com/lukaskleinschmidt/kirby-resolve.git site/plugins/resolve
Composer
composer require lukaskleinschmidt/kirby-resolve
许可证
MIT