aelvan / stamp
此包已被弃用且不再维护。没有建议的替代包。
一个用于给文件名添加时间戳的简单插件。
2.1.0
2018-10-06 22:01 UTC
Requires
- craftcms/cms: ^3.0.0
This package is auto-updated.
Last update: 2022-04-27 22:27:51 UTC
README
一个用于给文件名添加时间戳的小插件。
这是 Stamp 的 Craft 3.x 版本,Craft 2.x 版本请参阅 master 分支。
需求
此插件需要 Craft CMS 3.0.0 或更高版本。
安装
要安装此插件,请按照以下说明操作。
-
打开您的终端并转到您的 Craft 项目目录
cd /path/to/project
-
然后告诉 Composer 加载插件
composer require aelvan/stamp
-
在控制面板中,转到设置 → 插件,并点击 Stamp 的“安装”按钮。
使用方法
使用方法如下
<script src="{{ craft.stamp.er('/assets/build/js/scripts.js') }}"></script>
这将得到以下结果
<script src="/assets/build/js/scripts.1399647655.js"></script>
er() 方法接受第二个参数用于设置输出格式。可能的值有 file
(默认),folder
,query
和 tsonly
。
folder
示例
<script src="{{ craft.stamp.er('/assets/build/js/scripts.js', 'folder') }}"></script>
结果
<script src="/assets/build/js/1399647655/scripts.js"></script>
query
示例
<script src="{{ craft.stamp.er('/assets/build/js/scripts.js', 'query') }}"></script>
结果
<script src="/assets/build/js/scripts.js?ts=1399647655"></script>
only
示例
Timestamp is: {{ craft.stamp.er('/assets/build/js/scripts.js', 'only') }}
结果
Timestamp is: 1399647655
哈希选项
craft.stamp.er() 方法接受第三个参数用于设置输出算法。可能的值有 ts
(默认)和 hash
。
ts
代表时间戳,行为如上所述。hash
获取文件的 CRC32 校验和而不是时间戳。这在需要完全确定的缓存破坏时非常有用。
例如
<script src="{{ craft.stamp.er('/assets/build/js/scripts.js', 'file', 'hash') }}"></script>
结果
<script src="/assets/build/js/scripts.2031312059.js"></script>
URL 重写
对于 file
和 folder
方法,你可能需要进行一些 URL 重写。以下是一些如何操作的示例,根据您的服务器和项目设置进行调整。
Apache
# Rewrites asset versioning, ie styles.1399647655.css to styles.css.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.(\d{10})\.(js|css)$ $1.$3 [L] # /assets/build/js/scripts.1399647655.js
# RewriteRule ^(.+)/(\d{10})/(.+)\.(js|css)$ $1/$3.$4 [L] # /assets/build/js/1399647655/scripts.js
nginx
location @assetversioning {
rewrite ^(.+)\.[0-9]+\.(css|js)$ $1.$2 last; # /assets/build/js/scripts.1399647655.js
# rewrite ^(.+)/([0-9]+)/(.+)\.(js|css)$ $1/$3.$4 last; # /assets/build/js/1399647655/scripts.js
}
location ~* ^/assets/.*\.(?:css|js)$ {
try_files $uri @assetversioning;
expires max;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
配置
Stamp 需要知道公共文档根以确定文件位置。默认情况下,Stamp 将使用 @webroot
,但在某些服务器配置中这可能是错误的路径。您可以通过在配置文件夹中创建一个名为 stamp.php
的配置文件,并添加 publicRoot
设置来配置路径。
示例
'publicRoot' => '/path/to/website/public/',
变更日志
请参阅 CHANGELOG.md。