laravel-asset-version maintained by elfsundae
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',
);
:warning: You need to run the 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-versionNPM 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.