escapework / laravel-asset-versioning
0.8.0
2020-05-14 09:49 UTC
Requires
- php: >=7.0.0
Requires (Dev)
- illuminate/console: ~5
- illuminate/filesystem: ~5
- illuminate/support: ~5
- mockery/mockery: @stable
- nesbot/carbon: 1.*
- phpunit/phpunit: ~4.0
README
免责声明: 此包已不再维护,我们建议您使用 Laravel Mix 版本化。
您是否在资产缓存方面遇到过问题?此包可能帮到您。
版本兼容性
Laravel | Laravel Assets Versioning |
---|---|
6.x/7.x/8.x | 0.8.x |
5.5+ | 0.7.x |
5.4.x | 0.6.x |
5.3.x | 0.5.x |
5.2.x | 0.4.x |
5.1.x | 0.3.x |
5.0.x | 0.2.x |
4.2.x | 0.1.x |
安装
通过 Composer
$ composer require escapework/laravel-asset-versioning:"0.7.*"
运行以下命令发布配置
$ php artisan vendor:publish --provider="EscapeWork\Assets\AssetsServiceProvider"
使用方法
您需要使用 Asset:v
方法,而不是使用 asset
辅助函数。
假设您的布局模板有以下行
<link rel="stylesheet" href="{{ Asset::v('assets/stylesheets/css/main.css') }}"> <script src="{{ Asset::v('assets/javascripts/js/main.js') }}"></script>
在您的 本地 环境中,没有任何变化。但在 生产 环境中,每次您需要更新资产的版本时,只需运行以下命令
$ php artisan asset:dist
您的布局将被渲染为以下内容
<link rel="stylesheet" href="/assets/stylesheets/dist/1392745827/main.css" /> <script src="/assets/javascripts/dist/1392745827/main.js"></script>
版本是您执行 asset:dist
命令时的日期和时间戳。
此包通过文件扩展名识别您需要的文件夹,这是配置文件中的数组键。
您也可以获取某些扩展名的路径
{{ Asset::path('css') }} <!-- /assets/stylesheets/dist/1392745827 -->
HTTP2 服务器推送
您还可以为此包中使用的所有资产启用 HTTP2 服务器推送头。
为此,您需要将 HTTP2ServerPush
添加到您应用程序的中件间。
protected $middleware = [ \EscapeWork\Assets\Middleware\HTTP2ServerPush::class, ];
这样,您的响应将带有 Link
HTTP 头。
如果您想添加一些未进行版本化的资产,可以使用此方法
Asset::addHTTP2Link('/assets/fonts/robotto.woff', 'font'); Asset::addHTTP2Link('/assets/css/home.css', 'css'); Asset::addHTTP2Link('/assets/js/home.js', 'js');
配置
当然,您可以配置所需的文件夹。只需编辑 config/assets.php
文件中的 types
数组。
'types' => [ 'css' => [ 'origin_dir' => 'your-custom-css-dir/css', 'dist_dir' => 'your-custom-css-dir/dist', ], 'js' => [ 'origin_dir' => 'your-custom-js-dir/js', 'dist_dir' => 'your-custom-js-dir/dist', ], 'jpg' => [ 'origin_dir' => 'assets/images', 'dist_dir' => 'assets/images/dist', ], ],
您还可以通过向数组中添加更多项来添加更多文件夹。
此外,您还可以配置在哪些环境中对资产进行版本化。
'environments' => ['production'],
变更日志
请参阅 变更日志。
单元测试
只需运行 vendor/bin/phpunit
。
许可证
请参阅 许可证 文件。