# Versioning Cache Busting

Many developers suffix their compiled assets with a timestamp or unique token to force browsers to load the fresh assets instead of serving stale copies of the code. Elixir can handle this for you using the `version` method.

The `version` method accepts a file name relative to the `includes` directory, and will append a unique hash to the filename, allowing for cache-busting. For example, the generated file name will look something like: `all-16d570a7.css`:

```javascript
elixir( function( mix ){
    mix.version( 'css/all.css' );
} );
```

## Versioning Multiple Files

You may pass an array to the `version` method to version multiple files:

```javascript
elixir( function( mix ){
    mix.version( [ 'css/all.css', 'js/app.js' ] );
} );
```

## Custom Output Directory

By default the `version` task will create a `build` folder in your `includes` folder that will contain a revision json file and the versioned assets according to `js` or `css` type. You can change the destination using the second argument:

```javascript
elixir( function( mix ){
    mix.version( [ 'css/all.css', 'js/app.js' ], "includes/versioned" );
} );
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://coldbox-elixir.ortusbooks.com/v2/index.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
