developion/cache

提供预渲染 Craft Entries 的钩子。

安装: 15

依赖: 0

建议者: 0

安全: 0

星星: 0

分支: 0

类型:craft-plugin

0.6.1 2021-12-13 14:13 UTC

This package is auto-updated.

Last update: 2024-09-15 08:41:07 UTC


README

为 CraftCMS 中的缓存和预渲染内容提供钩子和实用工具。

Software License Total Downloads Latest Version

这东西的目的是什么?

尽管 CraftCMS 默认提供 HTML 缓存和图像转换,但在第一个访客尝试打开您的页面之前,该内容仍然需要被渲染。当然,您可以在清除缓存或更新内容时刷新页面,但让 CraftCMS 帮您做这件事似乎是一个更好的方法。

  • 用于在 twig 模板中渲染响应式图像的灵活语法
  • 使用与本地图像相同的语法,在本地存储第三方图像以优化服务
  • 可验证的端点,可从外部来源清除缓存
  • 用于变量缓存的 twig 函数(不仅是模板!)

安装

通过 Composer 超级简单地进行安装

$ composer require developion/cache

或手动将其添加到您的 composer.json 文件中。

用法

渲染响应式图像 HTML

使用 twig 模板中的 image 函数渲染一个包含基于提供的配置的 webp/jpg 图像对的 picture 标签。

{{ image(
  image = asset,
  config = config,
  alt = alt,
  imageMobile = imageMobile
)|raw }}

image

接受 URL 字符串或 craft\elements\Asset 对象。如果图像已存储在 CMS 中,则不会再次上传。基于文件名。

alt

可选。如果文件名(分割单词)不希望用于 alt,则使用。

imageMobile

工作名称。可选。如果提供,则占用响应集的第一个 source 标签对。

config

包含渲染资产的配置的对象。属性

  • template: 要渲染的模板路径。
    默认为 developion-cache/components/image
  • fallback: 如果传递的图像有问题,则使用的回退模板。
  • htmlAttributes: 包含键值对的 HTML 属性的对象。
  • params: 包含图像渲染时的大小定义的对象数组。
    如果为空,则没有输出。属性
    • append: 要添加到文件名末尾的字符串(在扩展名之前)。
    • scaleAndCrop: 如果 size 是对象,则在裁剪之前缩放图像。
    • media: 每个图像对的媒体查询。
    • size: 整数或具有整数属性 widthheight 的对象。
      如果是对象,则使用给定的尺寸裁剪。否则,它会被缩放。
      默认为 0(不更改图像大小)

最简单的示例看起来像这样

{{ image(
  image = 'www.example.com/image.jpg',
  config = {
    params: [
      {
        size: 200
      }
    ]
  }
)|raw }}

关于 config 参数的说明

由于 php 函数 array_merge 的工作方式,无法提供默认的 params 数组,而不在所有响应集中都有它。我们正在寻找一种方法来实现这一点,但目前,

关于 raw 过滤器的说明

默认情况下,twig 会转义来自变量和函数的所有 HTML。为了避免这种情况,请使用 |raw 过滤器。

外部来源缓存清除

可以在这个端点找到从外部来源清除缓存的方法

POST <SITE_URL>/cache/clear

该端点的凭据配置在项目 .env 文件中,如下所示

CLEAR_CACHE_USER="basic_auth_username"
CLEAR_CACHE_PASS="basic_auth_password"