Laravel Asset Version
, (*1)
Laravel static assets versioning via query string: app.js → app.js?d41d8cd98f., (*2)
Installation
$ composer require elfsundae/laravel-asset-version
For Lumen or earlier Laravel than v5.5, you need to register the service provider manually:, (*3)
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:, (*4)
<?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:, (*5)
$ php artisan asset-version:update
Now the configuration file might be:, (*6)
<?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:, (*7)
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., (*8)
Usage
You can get the versioned asset path using the asset_path() helper function:, (*9)
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., (*10)