aozisik/grunt-cache-buster

There is no license information available for the latest version (dev-master) of this package.

A Laravel 4 package that works with Grunt for cache busting.

dev-master 2015-04-29 13:41 UTC

This package is auto-updated.

Last update: 2024-10-10 14:01:43 UTC


README

This is a simple cache buster for Laravel 4 framework and Grunt task manager. The package depends on grunt-cachebuster npm module (felthy/grunt-cachebuster). After you install the npm module and this package, all you have to is add a service provider and configure your Gruntfile.js. No modification in .htaccess or NGINX configuration modifications are necessary.

Configuring Grunt

First add the following module to your package.json and run npm :

"grunt-cachebuster": "^0.1.5"

Add this to your grunt.initConfig

cachebuster: {
    build: {
      options: {
          basedir: 'public/',
          format: 'php',
          banner:
              '/**\n' +
              ' * GENERATED FILE, DO NOT EDIT. This file is simply a collection of generated hashes for static assets in \n' +
              ' * the project. It is generated by grunt, see Gruntfile.js for details.\n' +
              ' */'
      },
      src: ['public/**/*'],
      dest: 'app/config/cachebuster.php'
    }
}

And then load the npm task and register it where necessary

grunt.loadNpmTasks('grunt-cachebuster');
//..
//..
grunt.registerTask('buster', ['cachebuster']);

Make sure the cache buster task runs after all the other tasks. It will generate a file in your app/config directory by default. The package depends on this config file to function properly. After you set things up properly, run grunt and make sure it generates "cachebuster.php" file properly.

Configuring Laravel

Install this package by adding the following dependency to your L4 project:

"aozisik/grunt-cache-buster": "dev-master"

After the installation, you need to add the following service provider in your app/config/app.php:

'Aozisik\GruntCacheBuster\GruntCacheBusterServiceProvider'

Then wherever you want a cache-busted asset you can use the following instead of the default asset() helper

CacheBusted::asset('js/resultsCtrl.js')

The code above, used instead of the default asset helper, will yield the following URL:

http://demo.app/js/resultsCtrl.js?v=23d85993f132d67754489e47f66cf6ac

Enjoy!

If you have any questions to ask or bugs to report, feel free to contact me...