hashed-asset-bundle

Apply an asset version based on a hash of the asset for symfony/asset

MIT License

Downloads
439.4K
Stars
23
Committers
4

HashedAssetBundle

The HashedAssetBundle provides an asset version strategy which uses a hash of the file content as asset version. This allows bumping the asset version separately for each asset (automatically).

Installation

Use Composer to install the bundle:

$ composer require incenteev/hashed-asset-bundle

Usage

Register the bundle in the kernel:

// app/AppKernel.php

// ...

class AppKernel extends Kernel {
    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Incenteev\HashedAssetBundle\IncenteevHashedAssetBundle(),
        );
    }
}

Then configure FrameworkBundle to use the new version strategy:

framework:
    assets:
        version_strategy: incenteev_hashed_asset.strategy

Advanced configuration

The default configuration should fit common needs, but the bundle exposes a few configuration settings in case you need them:

incenteev_hashed_asset:
    # Absolute path to the folder in which assets can be found
    # Note: in case you apply a base_path in your asset package, it is not
    # yet applied to the string received by the bundle
    web_root: '%kernel.project_dir%/web'
    # Format used to apply the version. This is equivalent to the
    # `framework > assets > version_format` of the static version strategy
    # of FrameworkBundle.
    version_format: '%%s?%%s'

License

This bundle is under the MIT license.

Alternative projects

If you want to apply cache busting by renaming files in your asset pipeline (for instance with the webpack-encore versioning feature), have a look at the json_manifest strategy available in Symfony itself.

Reporting an issue or a feature request

Issues and feature requests are tracked in the Github issue tracker.