thathoff/kirby-clear-cloudflare-cache

Kirby 插件,用于清除 Cloudflare 缓存 URL

v1.2.0 2022-08-11 18:54 UTC

This package is auto-updated.

Last update: 2024-09-14 14:14:23 UTC


README

此 Kirby 插件可以自动清除 Cloudflare 缓存的 URL。

安装

下载

下载并将此存储库复制到 /site/plugins/clear-cloudflare-cache

Git 子模块

git submodule add https://github.com/thathoff/kirby-clear-cloudflare-cache.git site/plugins/clear-cloudflare-cache

Composer

composer require thathoff/kirby-clear-cloudflare-cache

设置

至少,您必须在您的 config.php 文件中设置以下选项

'thathoff.clearcloudflarecache.cloudflareZoneID' => 'YOUR_CF_ZONE_ID',
'thathoff.clearcloudflarecache.cloudflareEmail'  => 'YOUR_CF_EMAIL',
'thathoff.clearcloudflarecache.cloudflareAPIKey' => 'YOUR_CF_API_KEY',

选项

thathoff.clearcloudflarecache.cloudflareZoneID

此值必须设置为您的 Cloudflare 区域 ID(在概览仪表板上可用)。

thathoff.clearcloudflarecache.cloudflareEmail

此值必须设置为您的 Cloudflare 账户的电子邮件地址。

thathoff.clearcloudflarecache.cloudflareAPIKey

此值必须设置为您的 Cloudflare API 密钥(在个人资料页面中可用)。

thathoff.clearcloudflarecache.dependantUrlsForPage

此必须是一个函数,它返回在页面修改后应清除的 URL。

默认情况下,简单返回页面的 URL 和可能的前一个 URL(在slug更改的情况下)。

function ($hook, $page, $oldPage = null) {
    return $oldPage ? [$page->url(), $oldPage->url()] : $page->url();
}

如果您知道一个页面的更改会影响其他页面,您也可以包括它们。例如,以下将清除修改的页面兄弟(包括受影响的页面)和父页面的 Cloudflare 缓存。

'thathoff.clearcloudflarecache.dependantUrlsForPage'=> function ($hook, $page, $oldPage = null) {
    return $page->parents()->add($page->siblings(true));
},

或者,一个更详细的示例可以包括网站地图和内容表示

'thathoff.clearcloudflarecache.dependantUrlsForPage'=> function ($hook, $page, $oldPage = null) {
    $urls = [];
    $urls[] = $page->url();
    $urls[] = $page->url() . '.json';
    if ($oldPage) {
        $urls[] = $oldPage->url();
        $urls[] = $oldPage->url() . '.json';
    }
    $urls[] = page('sitemap')->url();
    $urls[] = page('sitemap')->url() . '.xml';
    return $urls;
},

函数可以返回

  • 单个页面对象
  • 单个 URL 字符串
  • 页面集合
  • URL 字符串和/或页面对象的数组
  • null,空数组或空页面集合(这将导致不清除缓存)

重复的 URL 将自动过滤。

所有 URL 字符串必须是绝对 URL(例如 https://www.example.com/blog),而不是相对 URL(例如 /blog);

许可证

MIT

鸣谢

Markus Denhoff 维护,最初由 Neil DanielsThe Streamable 开发