Download the PHP package themonkeys/cachebuster without Composer
On this page you can find all versions of the php package themonkeys/cachebuster. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download themonkeys/cachebuster
More information about themonkeys/cachebuster
Files in themonkeys/cachebuster
Package cachebuster
Short Description Adds MD5 hashes to the URLs of your application's assets, so when they change, their URL changes.
License MIT
Homepage http://github.com/TheMonkeys/laravel-cachebuster
Informations about the package cachebuster
Laravel Cachebuster
Adds MD5 hashes to the URLs of your application's assets, so when they change, their URL changes. URLs contained in your
css files are transformed automatically; other URLs (such as those referenced via <script>
, <link>
and <img>
tags)
are easy to transform too via a helper function in your blade templates.
Also supports adding a CDN proxy prefix to your asset URLs, to quickly and easily add the performance and scalability of a transparent CDN such as Cloudfront to your app.
Installation
To get the version of cachebuster compatible with your version of laravel, follow the notes below regarding installation
1) Add the following to your composer.json
For Laravel 5.x
For Laravel 4.x
Note: IFor continued Laravel 4 support, please use the cachebuster 1.x releases, and not dev-master*
2) Run composer update
3) Once cachebuster is installed you need to register the service provider with the application.
Open up app/config/app.php
and find the providers
key.
4) The package ships with a facade which provides a concise static syntax for encoding your URLs. You can register the
facade via the aliases
key of your app/config/app.php
file.
5) Add the following to your .htaccess file before the Laravel rewrite rule:
Note: If you're using NGINX and not interpreting
.htaccess
files, see this gist by @RTC1 for the equivalent NGINX rewrite rule.
And add the following to your .htaccess file after the Laravel rewrite rule:
6) Finally, add this to your app/routes.php
file:
Note: this wildcard route is known to conflict with the wildcard route used by croppa, rendering Croppa ineffective. Should that affect you, simply be more specific with the CSS route. For example, if all your css files are in a
css/
folder:Or you could even use
Bust::css()
within a filter instead.
Configuration
To configure the package, you can use the following command which wil publish the configuration file(s) to app/config/
.
Laravel 5.x
Will publish to: /app/config/cachebuster.php
.
The settings themselves are documented inside /app/config/cachebuster.php
. You can change the default settings here too, for when the environment variables are not detected.
Note: Laravel 5.x changed envronment configuration to use dotEnv files, and you will need to "enable" cachebuster using the dotEnv paradigm for each environment your application requires.
For example, to enable cachebuster, open up your .env
file, and add the following line
Laravel 4.x
Will publish to: app/config/packages/themonkeys/cachebuster
.
Or you can just create a new file in that folder and only override the settings you need. The settings themselves are documented inside app/config/packages/themonkeys/cachebuster/config.php
.
Using Laravel's built-in development server
You may want to use Laravel's built-in development server to serve your application, for example for automated testing.
Since that server doesn't support the necessary URL rewriting, the simplest solution is to disable cachebusting for that
environment. Do that by creating the file app/config/packages/themonkeys/cachebuster/testing/config.php
(replace
testing
with the environment used by the development server) with the contents:
<?php
return array(
'enabled' => false,
);
If, instead, you still want to enable cachebusting under the development server, you can use the code in [this gist] (https://gist.github.com/felthy/3fc1675a6a89db891396). Thanks to RTC1 for the original code upon which that gist is based.
Usage
Wherever you specify an asset path in your blade templates, use Bust::url()
to transform the path. For example, a
script tag like this...
...will look like this to your users:
Or if you've configured a CDN it might look like:
The same goes for <img>
tags:
will look like this to your users:
The final piece of the puzzle is your css:
comes out looking like this:
Some real magic happens here - all the URLs inside your CSS file (images, fonts etc.) are automatically passed through the cachebuster, so they now have hashes in their filenames too. Open the CSS file in your browser and have a look!
Absolute URLs
Sometimes you might want to specify an absolute URL, for example in an OpenGraph meta tag. That's easy:
might come out as:
This uses Laravel's built-in URL generators so the URLs will be generated depending on your environment.
Contribute
In lieu of a formal styleguide, take care to maintain the existing coding style.
License
MIT License (c) The Monkeys
All versions of cachebuster with dependencies
illuminate/support Version 4.*|5.*
symfony/http-kernel Version 2.*|3.*|4.*