escapework/laravel-asset-versioning

此包已被废弃且不再维护。作者建议使用 https://laravel.net.cn/docs/7.x/mix 包代替。

此包可以帮助您通过版本化资产来避免缓存问题

0.8.0 2020-05-14 09:49 UTC

README

Latest Stable Version Downloads Build Status License MIT

免责声明: 此包已不再维护,我们建议您使用 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

许可证

请参阅 许可证 文件。