codemonauts/craft-asset-autoversioning

一个Craft CMS的Twig扩展,帮助你清除资源缓存。

2.0.0 2022-05-04 06:33 UTC

This package is auto-updated.

Last update: 2024-09-04 12:02:49 UTC


README

Icon

这是一个非常基础的CraftCMS Twig扩展,帮助你清除资源缓存。

背景

为了强制浏览器在更新后下载新的资源文件,插件允许你添加一个Twig函数,该函数将构建号或文件mtime添加到文件名中。

要求

  • Craft CMS >= 4.0.0

安装

项目

打开终端并转到你的Craft项目

cd /path/to/project
composer require codemonauts/craft-asset-autoversioning
./craft install/plugin craft3-assets-autoversioning

CI/CD管道

添加到资产URL中的构建号是从名为build.txt的文件中读取的,该文件必须存在于你的项目文件夹中。例如,在你的部署脚本中使用以下内容(以下示例针对CodeShip)

echo -n "${CI_BUILD_NUMBER}" > build.txt

如果文件不存在,则使用资产的filemtime。

Web服务器

因为客户端现在将开始请求类似/css/styles.12345678.css的文件,我们需要告诉Web服务器如何重写这些URL,以便原始的/css/styles.css将被提供。

Apache

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*?\/)*?([a-z\.\-]+)(\d+)\.(bmp|css|cur|gif|ico|jpe?g|js|png|svgz?|webp|webmanifest)$ $1$2$4 [L]
</IfModule>

NGINX

location ~* (.+)\.(?:\d+)\.(js|css|png|jpg|jpeg|gif|webp)$ {
  try_files $uri $1.$2;
}

使用方法

在你的模板中使用新的Twig函数versioning()。例如在pug中

<link rel="stylesheet" href="{{ versioning('/css/styles.css')}}">

将产生如下结果

<link rel="stylesheet" href="/css/styles.12345678.css">

codemonauts倾情奉献