tooleks/laravel-asset-version

Laravel 资产版本控制包

1.0.2 2016-10-28 13:33 UTC

This package is not auto-updated.

Last update: 2024-09-24 21:36:12 UTC


README

此包用于对资产 URL 资源进行版本控制。

版本控制前的资产链接

https://website.domain/path/to/asset.css

版本控制后的资产链接

https://website.domain/path/to/asset.css?v=0.0.1

需求

PHP >= 7.0, Laravel >= 5.0。

安装

包安装

执行以下命令以获取包的最新版本

composer require tooleks/laravel-asset-version

应用配置

服务注册

要注册服务,只需将 Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider::class 添加到您的 config/app.php 文件的 providers 数组末尾

'providers' => [
    ...
    Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider::class,
],

如果您希望通过外观接口使用服务,请将 'Asset' => Tooleks\LaravelAssetVersion\Facades\Asset::class 添加到您的 config/app.php 文件的 aliases 数组末尾

'aliases' => [
    ...
    'Asset' => Tooleks\LaravelAssetVersion\Facades\Asset::class,
],

发布文件资源

在终端中运行以下命令以发布包文件资源

php artisan vendor:publish --provider="Tooleks\LaravelAssetVersion\Providers\AssetServiceProvider" --tag="config"

配置资产版本

config/assets.php 中配置资产版本号

...
'version' => '0.0.1',
...

基本使用示例

通过服务对象

use Tooleks\LaravelAssetVersion\Contracts\AssetServiceContract;

$assetUrl = app(AssetServiceContract::class)->get('path/to/asset.css'); // 'http://website.domain/path/to/asset.css?v=0.0.1'

$secureAssetUrl = app(AssetServiceContract::class)->get('path/to/asset.css', true); // 'https://website.domain/path/to/asset.css?v=0.0.1'

注意:如果未传递第二个参数并且 config/assets.php 中配置的 secure 选项为 null,则会自动检测安全选项

...
'secure' => null,
...

通过服务外观类

use Tooleks\LaravelAssetVersion\Facades\Asset;

$assetUrl = Asset::get('path/to/asset.css'); // 'http://website.domain/path/to/asset.css?v=0.0.1'

$secureAssetUrl = Asset::get('path/to/asset.css', true); // 'https://website.domain/path/to/asset.css?v=0.0.1'

注意:如果未传递第二个参数并且 config/assets.php 中配置的 secure 选项为 null,则会自动检测安全选项

...
'secure' => null,
...

在布局(Blade 模板)中

<link href="{{ Asset::get('path/to/asset.css') }}" rel="stylesheet" type="text/css">

在布局(PHP 模板)中

<link href="<?= Asset::get('path/to/asset.css') ?>" rel="stylesheet" type="text/css">