elfsundae/laravel-asset-version

Laravel static assets versioning via query string: `app.js` → `app.js?d41d8cd98f`

1.0.0 2017-11-23 16:06 UTC

This package is auto-updated.

Last update: 2024-10-29 05:16:27 UTC


README

Latest Version on Packagist Software License StyleCI

Laravel static assets versioning via query string: app.jsapp.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',
);

⚠️ 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-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.