thestreamable/kirby-clear-cloudflare-cache

该包已被弃用且不再维护。作者建议使用 thathoff/kirby-clear-cloudflare-cache 包。

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

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

This package is auto-updated.

Last update: 2022-08-14 19:20:00 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 Daniels 开发,他是 The Streamable 的成员