bootpress / asset
从任何位置缓存并交付各种资产,无需手动版本控制。实时处理图片。最小化和合并(按需)CSS和JavaScript文件。
v1.1.1
2024-07-24 23:49 UTC
Requires
- php: >=5.4
- bootpress/page: ^1.0
- bootpress/sqlite: ^1.0
- league/glide-symfony: ^1.0 || ^2.0
- matthiasmullie/minify: 1.3.*
- symfony/http-foundation: ^2.3 || ^3.0 || ^4.0 || ^5.0 || ^6.0 || ^7.0
- xsirix/phpuri: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^1.0
- phpunit/phpunit: ^4.0
- squizlabs/php_codesniffer: ^2.5
This package is not auto-updated.
Last update: 2024-09-19 00:44:50 UTC
README
Asset::cached() 是满足所有资产缓存需求的一站式方法。这应该是你首先调用的。它会检查页面是否正在寻找缓存的资产。如果是,则返回一个你可以 $page->send()
的响应。如果不是,则继续进行。当你 $page->display()
你的HTML时,它会查找所有你的资产,并将它们转换为缓存的URL。
- 如果找到资产,我们将给它一个唯一的(5个字符)ID,然后将其变成“文件夹”,并在末尾添加
basename()
以供参考/SEO。- http://example.com/page/dir/bootstrap.css 将变成 http://example.com/...../bootstrap.css,其中 'bootstrap.css' 没有意义,而 ...... 是实际的资产位置。
- 60个字母数字字符(不含0)^ 5(字符长度)给出 777,600,000 种可能的组合。
- 如果资产后面立即跟有一个 #fragment,我们将移除该片段和 ...
- 如果是 .css 或 .js 文件,则我们将将它们合并在一起,因此 http://example.com/page/dir/bootstrap.css#../default.css#user/custom.css 将变成 http://example.com/.....0.....0...../bootstrap-default-custom.css,我们将一次性最小化和提供 /page/dir/bootstrap.css、/page/default.css 和 /page/dir/user/custom.css 文件。
- 否则,我们将用其替换名称,即 http://example.com/page/dir/image.jpg#seo 将变成 http://example.com/...../seo.jpg
- 如果你向图片添加查询字符串,我们将删除它并将其与文件名一起保存,即 http://example.com/page/dir/image.jpg?w=150#seo 将变成 http://example.com/...../seo.jpg,其中 ..... 与上一个示例不同,而 image.jpg 的宽度将是 150 像素。
- 要查看所有这些选项,请参阅 Glide 快速参考指南。
- 保存
filemtime()
以便当资产更改时,我们可以给它一个全新的唯一文件名,然后浏览器将再次寻找并缓存它。- 这允许我们告诉浏览器永远不要再次寻找资产,因为它永远不会改变。
- 没有比这更好的方法可以使你的页面加载速度更快。
安装
将以下内容添加到你的 composer.json
文件中。
{ "require ": { "bootpress/asset": "^1.0" } }
示例用法
<?php use BootPress\Page\Component as Page; use BootPress\Asset\Component as Asset; $page = Page::html(); if ($asset = Asset::cached('assets')) { $page->send($asset); } $html = $page->display('<p>Content</p>'); $page->send(Asset::dispatch('html', $html));
许可
MIT 许可证 (MIT)。请参阅 许可文件 了解更多信息。