tooleks / laravel-asset-version
Laravel 资产版本控制包
1.0.2
2016-10-28 13:33 UTC
Requires
- php: ~7.0
Requires (Dev)
- laravel/framework: 5.3.*
- phpunit/phpunit: 5.5.*
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">