File Method and css/js helper to add cachebusting hash and optional Subresource Integrity to file

Installs: 393

Dependents: 0

Suggesters: 0

Stars: 13

Watchers: 0

Forks: 0

Open Issues: 0


3.0.1 2019-08-26 02:02 UTC


Release Stars Downloads Issues Build Status Coverage Status Demo Gitter Twitter

File Method and css/js helper to add cachbusting hash and optional Subresource Integrity to files.

Commerical Usage

This plugin is free but if you use it in a commercial project please consider to

Similar Plugins

Both of the following plugins can do cachebusting but they do not cache the modified timestamp nor can they do SRI nor do cachebusting for non js/css files.


  • unzip as folder site/plugins/kirby3-fingerprint or
  • git submodule add site/plugins/kirby3-fingerprint or
  • composer require bnomei/kirby3-fingerprint


This Plugin does not override the build in js/css helpers. Use Bnomei\Fingerprint::css and Bnomei\Fingerprint::js when you need them.

echo Bnomei\Fingerprint::css('/assets/css/index.css');
// https://../assets/css/index.css?v=1203291283

echo Bnomei\Fingerprint::js('/assets/js/index.min.js');
// https://../assets/js/index.min.js?v=1203291283

echo $page->file('ukulele.pdf')->fingerprint();
// https://../ukulele.pdf?v=1203291283

echo $page->file('ukulele.pdf')->integrity();
// sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC

// generate sri from local file
echo Bnomei\Fingerprint::js(
        "integrity" => true
<script src="https://../assets/js/index.min.js"

echo Bnomei\Fingerprint::js(
        "integrity" => "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC"
<script src="https://external.cdn/framework.min.js"


bnomei.fingerprint. Default Description
hash callback will lead to the hashing logic
integrity callback use it to set option 'integrity' => null,
https true boolean value or callback to force https scheme.
query true myfile.js?v={HASH} else myfile.{HASH}.js

Query option disabled

If you disable the query option you also also need to add apache or nginx rules. These rules will redirect css and js files from with hash to the asset on disk.

.htaccess – put this directly after the RewriteBase statment

# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.([0-9a-z]{32})\.(js|css)$ $1.$3 [L]

Nginx virtual host setup

location ~ (.+)\.(?:\d+)\.(js|css)$ {
    try_files $uri $1.$2;

Cache & Performance

The plugin will flush its cache and do not write any more caches if global debug mode is true.

Hash and SRI values are cached and only updated when original file is modified. If you also have the AutoID Plugin and the file has an autoid field the modified lookup will be at almost zero-cpu cost.


This plugin is provided "as is" with no guarantee. Use it at your own risk and always test it yourself before using it in a production environment. If you find any issues, please create a new issue.



It is discouraged to use this plugin in any project that promotes racism, sexism, homophobia, animal abuse, violence or any other form of hate speech.