bnomei / kirby3-fingerprint
文件方法和 css/js 辅助工具,用于添加缓存破坏哈希和可选的子资源完整性到文件
Requires
- php: >=7.4.0
- getkirby/composer-installer: ^1.2
Requires (Dev)
- getkirby/cms: ^3.5
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: ^9.5
Suggests
- bnomei/kirby3-security-headers: Let's make the web a saver place – sensible defaults included.
- diverently/laravel-mix-kirby: Consider using this plugin instead if all your assets are versioned by laravel mix.
- dev-master
- 3.2.0
- 3.1.2
- 3.1.1
- 3.1.0
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.3.1
- 2.3.0
- 2.2.5
- 2.2.4
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.0
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.1
- 2.0.0
- 1.2.0
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.0
- dev-dependabot/composer/guzzlehttp/psr7-2.5.0
- dev-dependabot/composer/getkirby/cms-3.6.6.2
- dev-dependabot/composer/guzzlehttp/guzzle-7.5.0
This package is auto-updated.
Last update: 2024-09-19 22:42:22 UTC
README
文件方法以及 css/js 辅助工具,用于向文件添加缓存破坏哈希和可选的子资源完整性。
商业使用
支持开源!
此插件免费,但如果您将其用于商业项目,请考虑赞助我或捐款。
如果我的工作帮助您赚了钱,那么我觉得我可能也应该得到一点回报,对吧?
行善。分享一点。谢谢。
—— Bruno
类似插件
以下插件可以进行缓存破坏,但它们不会缓存修改的文件时间戳,也不能执行 SRI 或为非 js/css 文件执行缓存破坏。
安装
- 将 master.zip 解压缩到文件夹
site/plugins/kirby3-fingerprint
或 git submodule add https://github.com/bnomei/kirby3-fingerprint.git site/plugins/kirby3-fingerprint
或composer require bnomei/kirby3-fingerprint
使用
此插件 不会 覆盖内置的 js/css 辅助工具。当需要时使用
Bnomei\Fingerprint::css
和Bnomei\Fingerprint::js
。
echo Bnomei\Fingerprint::css('/assets/css/index.css'); // <style> element with https://../assets/css/index.css?v=1203291283 echo Bnomei\Fingerprint::js('/assets/js/index.min.js'); // <link> element https://../assets/js/index.min.js?v=1203291283 echo Bnomei\Fingerprint::url('/assets/css/index.css'); // raw url https://../assets/css/index.css?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( '/assets/js/index.min.js', [ "integrity" => true ] ); /* <script src="https://../assets/js/index.min.js" crossorigin="anonymous"></script> */ echo Bnomei\Fingerprint::js( 'https://external.cdn/framework.min.js', [ "integrity" => "sha384-oqVuAfXRKap7fdgcCY5uykM6+R9GqQ8K/uxy9rx7HNQlGYl1kPzQho1wx4JwY8wC" ] ); /* <script src="https://external.cdn/framework.min.js" crossorigin="anonymous"></script> */
设置
查询选项:true(默认)
myfile.js?v={HASH}
这是默认设置,因为它不需要对您的服务器进行额外更改即可正常工作,但请注意,查询字符串并不完美。
查询选项:false
如果您禁用了查询选项,您还需要添加 Apache 或 Nginx 规则。这些规则将重定向带哈希的 css 和 js 文件到磁盘上的资产。
.htaccess - 在 RewriteBase
语句之后直接放置此内容
# RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.([0-9a-z]{32})\.(js|css)$ $1.$3 [L]
Nginx 虚拟主机设置
location ~ (.+)\.(?:\w+)\.(js|css)$ {
try_files $uri $1.$2;
}
查询选项:字符串
您还可以转发一个 json 编码的清单文件的路径,插件将加载其中定义的任何哈希。这对于 gulp-rev 或与 laravel mix 版本控制 一同使用非常有效。
缓存 & 性能
如果全局调试模式为 true
,则插件将清除其缓存并停止写入任何更多缓存。
哈希和 SRI 值被缓存,并且仅在原始文件被修改时才更新。如果您还有 AutoID 插件,并且文件有一个 autoid 字段,则修改查找的成本几乎为零。
免责声明
本插件提供“原样”且不提供任何保证。请在自己的风险下使用,并在将其用于生产环境之前始终自行测试。如果您发现任何问题,请创建新问题。
许可证
不建议在任何宣传种族主义、性别歧视、恐同、动物虐待、暴力或其他任何形式仇恨言论的项目中使用此插件。
致谢
- 基于@iksi https://github.com/iksi/kirby-fingerprint(Kirby V2)
- @S1SYPHOS https://github.com/S1SYPHOS/kirby-sri(Kirby V2)