memdev / laravel-http2serverpush
Laravel 的 HTTP2 服务器推送中间件
2.0.8
2019-08-13 12:08 UTC
Requires
- php: ^5.5|^7.0
- illuminate/http: ^5.3
- illuminate/support: ^5.3
- symfony/css-selector: ^2.7|^3.0|^4.0
- symfony/dom-crawler: ^2.7|^3.0|^4.0
Requires (Dev)
- phpunit/phpunit: ^4.0|^5.0
- scrutinizer/ocular: ^1.1
README
Laravel 5 的服务器推送中间件
此仓库是从 JacobBennett/laravel-HTTP2ServerPush 分支 此提交 合并而来的。
服务器推送是 HTTP/2 的一种概念,允许服务器推测性地开始向客户端发送资源。这可以潜在地加快初始页面加载时间:浏览器不需要解析 HTML 页面并找出其他要加载的资源,而是服务器可以立即开始发送这些资源。 (来源)
此包旨在为将服务器推送添加到您的响应提供最简便的体验。只需将请求通过 AddHttp2ServerPush 中间件路由,它将自动创建并附加必要的 Link 标头,以实现 CSS、JS 和图像资源的服务器推送。
安装
您可以通过 composer 安装此包
$ composer require vsg24/laravel-http2serverpush
接下来,您必须将 \JacobBennett\Http2ServerPush\Middleware\AddHttp2ServerPush 中间件添加到内核中。将其添加到 web 组是推荐的,因为 API 没有需要推送的资源。
// app/Http/Kernel.php ... protected $middlewareGroups = [ 'web' => [ ... \JacobBennett\Http2ServerPush\Middleware\AddHttp2ServerPush::class, ... ], ... ]; // config/app.php 'providers' => [ ... JacobBennett\Http2ServerPush\ServiceProvider::class, ... ],
发布配置
php artisan vendor:publish --provider="JacobBennett\Http2ServerPush\ServiceProvider"
使用方法
当您通过 AddHttp2ServerPush 中间件路由请求时,响应将被扫描,查找任何可以通过服务器推送加载的 link、script 或 img 标签。这些资源将在发送响应到客户端之前添加到 Link 标头中。简单易用!
注意:要推送图像资源,它必须具有以下扩展名之一:bmp、gif、jpg、jpeg、png 或 tiff。
测试
$ composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现任何与安全相关的问题,请通过电子邮件 me@jakebennett.net 而不是使用问题跟踪器。
致谢
感谢 https://github.com/spatie/laravel-pjax 包为我们提供了测试中间件的良好起点。
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。
