Laravel Mix provides a convenient way to version your assets, which helps with cache busting. When using Vue.js with Laravel Mix, you can take advantage of Mix's versioning feature to automatically append a unique hash to your asset filenames, making it easy to invalidate browser caches when your assets change.
Here are the steps to use Laravel Mix's versioning with Vue.js for cache busting:
Install Laravel Mix: Ensure you have Laravel Mix installed in your Laravel project. If it's not installed, you can install it using the following:
bashnpm install laravel-mix --save-dev
Configure Laravel Mix:
In your webpack.mix.js
file, configure Laravel Mix to compile and version your assets. Below is a simple example that assumes your Vue.js components are in the resources/js
directory:
javascriptconst mix = require('laravel-mix');
mix.js('resources/js/app.js', 'public/js')
.sass('resources/sass/app.scss', 'public/css')
.version();
In this example, the version()
method is used to enable asset versioning. This will append a unique hash to the filenames of compiled assets.
Update Blade Template:
In your Blade template or layout file, use the mix
helper function to include the versioned asset URLs. For example:
html<link rel="stylesheet" href="{{ mix('css/app.css') }}">
<script src="{{ mix('js/app.js') }}" defer></script>
The mix
function will automatically generate the correct URLs with the appended hash.
Run Mix: Run the Mix build process to compile your assets and apply versioning:
bashnpm run dev
Or for production:
bashnpm run production
This will compile your assets and generate versioned filenames.
Now, every time you run the Mix build process, Laravel will generate new filenames for your assets by appending a unique hash based on the content of the files. This helps with cache busting, as browsers will treat each version as a new file and fetch it accordingly.
Remember to update your asset references in your Blade templates whenever you change your assets or run the Mix build process. The mix
helper function takes care of providing the correct versioned URL for you.