Laravel Asset Version
Laravel static assets versioning via query string: app.js
→ app.js?d41d8cd98f
.
Installation
$ composer require elfsundae/laravel-asset-version
For Lumen or earlier Laravel than v5.5, you need to register the service provider manually:
ElfSundae\Laravel\AssetVersion\AssetVersionServiceProvider::class,
Configuration
First you need to create an asset version configuration file located at config/asset-version.php
, filled with assets paths. Or you may run the asset-version:update
artisan command to create this file:
<?php
return [
'css/app.css',
'js/app.js',
'images/foo.png',
];
Then you can run the asset-version:update
command to update the asset version configuration:
$ php artisan asset-version:update
Now the configuration file might be:
<?php
return array (
'css/app.css' => '3ede8f2085',
'js/app.js' => '2eaf111399',
'images/foo.png' => 'd41d8cd98f',
);
asset-version:update
command every time you changed any asset content. You may call this command in your assets build script, e.g. Laravel Elixir:
elixir((mix) => {
mix.sass('app.scss')
.webpack('app.js')
.exec('php artisan asset-version:update');
});
For Laravel Elixir, you can use
laravel-elixir-asset-version
NPM package to easily execute update.
Usage
You can get the versioned asset path using the asset_path()
helper function:
asset_path('css/app.css'); // "/css/app.css?3ede8f2085"
<link href="{{ asset_path('js/app.js') }}" rel="stylesheet">
License
This package is open-sourced software licensed under the MIT License.