Statamic 静态缓存管理器插件
发布于 作者 Eric L. Barnes
随着最近Laravel 新闻网站的重新发布,我们正在使用Statamic作为 CMS,并利用其静态缓存系统对所有内容进行大量缓存。
在幕后,Statamic 中的静态缓存的工作原理是,当页面首次加载时,将生成编译后的 HTML 并将其存储在static
目录中,作为一个完全扁平的文件。然后,Web 服务器尝试首先加载静态 HTML,因此加载速度非常快。
这种方法效果很好,但我们发现一个缺点是,此网站上有许多页面。完整的缓存可能会生成超过 2,000 个静态文件,而且大多数情况下,我们很少需要完全清除此缓存,并且清除缓存对于我们来说性能不佳,除非出于正当理由。
也就是说,有时我们确实需要清除缓存的子集,例如,当我们把文章移到新的类别或添加标签或其他一些独特的原因时。
清除缓存子集的唯一方法是通过 SSH 登录,然后运行类似这样的rm
命令来清除类别中的所有内容
rm static/news*
这使用了星号通配符,并清除了静态目录中以news
开头的所有文件。这种方法效果很好,也很容易,但如果可以直接从 Statamic 控制面板进行操作就更好了。
使用静态缓存管理器插件,由Duncan McClean创建,可以轻松实现这一点。这是一个非常简单的实用程序插件,在控制面板中,它提供了一个单一的文本区域,您可以输入要清除的任何路径,然后它会将它们删除。
该插件强大的功能在于,它利用了 PHP 的glob
函数,您可以使用通配符路径一次清除多个文件。例如,
blog/2020/laravel*statamic*home.html
这将删除所有以laravel
开头且位于 blog/2020 目录中的文件、所有以statamic
开头的文件以及home.html
文件。
如果您使用 Statamic 全缓存,并且正在寻找一种简单的清除缓存子集的方法,请尝试使用此插件。