aelvan/stamp

此包已被弃用且不再维护。没有建议的替代包。

一个用于给文件名添加时间戳的简单插件。

安装次数: 33,410

依赖项: 0

建议者: 0

安全性: 0

星标: 27

关注者: 2

分支: 4

开放问题: 3

类型:craft-plugin

2.1.0 2018-10-06 22:01 UTC

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 或更高版本。

安装

要安装此插件,请按照以下说明操作。

  1. 打开您的终端并转到您的 Craft 项目目录

     cd /path/to/project
    
  2. 然后告诉 Composer 加载插件

     composer require aelvan/stamp
    
  3. 在控制面板中,转到设置 → 插件,并点击 Stamp 的“安装”按钮。

使用方法

使用方法如下

<script src="{{ craft.stamp.er('/assets/build/js/scripts.js') }}"></script> 

这将得到以下结果

<script src="/assets/build/js/scripts.1399647655.js"></script>

er() 方法接受第二个参数用于设置输出格式。可能的值有 file(默认),folderquerytsonly

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 重写

对于 filefolder 方法,你可能需要进行一些 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