codemonauts / craft-asset-autoversioning
一个Craft CMS的Twig扩展,帮助你清除资源缓存。
2.0.0
2022-05-04 06:33 UTC
Requires
- craftcms/cms: ^4.0.0-alpha.1
This package is auto-updated.
Last update: 2024-09-04 12:02:49 UTC
README
这是一个非常基础的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倾情奉献