What's on this page
Assets
asset
An asset is a resource useable in templates, like CSS, JavaScript, image, audio, video, etc.
The asset() function creates an asset object from a file path, an array of files path (bundle) or an URL (remote file), and are processed (minified, fingerprinted, etc.) according to the configuration.
Resource files must be stored in the assets/ (or static/) directory.
{{ asset(path, {options}) }} | Option | Description | Type | Default |
|---|---|---|---|
| filename | Save bundle to a custom file name. | string | styles.css or scripts.js |
| ignore_missing | Do not stop build if file is not found. | boolean | false |
| fingerprint | Add content hash to the file name. | boolean | true |
| minify | Compress CSS or JavaScript. | boolean | true |
| optimize | Compress image. | boolean | false |
| fallback | Load a local asset if remote file is not found. | string | `` |
| useragent | User agent key (See Assets configuration). | string | default |
Examples:
{# CSS #}
{{ asset('styles.css') }}
{# CSS bundle #}
{{ asset(['poole.css', 'hyde.css'], {filename: styles.css}) }}
{# JavaScript #}
{{ asset('scripts.js') }}
{# image #}
{{ asset('image.jpeg') }}
{# audio #}
{{ asset('audio.mp3') }}
{# video #}
{{ asset('video.mp4') }}
{# remote file #}
{{ asset('https://cdnjs.cloudflare.com/ajax/libs/anchor-js/4.3.1/anchor.min.js', {minify: false}) }}
{# with filter #}
{{ asset('styles.css')|minify }}
{{ asset('styles.scss')|to_css|minify }} Asset attributes
Assets created with the asset() function expose some useful attributes.
Common:
file: filesystem pathmissing:trueif file is not found but missing is allowedpath: public pathext: file extensiontype: media type (e.g.:image)subtype: media sub type (e.g.:image/jpeg)size: size in octetscontent: file contenthash: file content hash (md5)dataurl: data URL encoded in Base64integrity: integrity hash
Remote:
url: URL of the remote file
Bundle:
files: array of filesystem path in case of a bundle
Image:
width: image width in pixelsheight: image height in pixelsexif: image EXIF data as array
Audio:
duration: duration in seconds.microsecondsbitrate: bitrate in bpschannel: 'stereo', 'dual_mono', 'joint_stereo' or 'mono'
Video:
duration: duration in secondswidth: width in pixelsheight: height in pixels
Examples:
{# image width in pixels #}
{{ asset('image.png').width }}px
{# photo's date in seconds #}
{{ asset('photo.jpeg').exif.EXIF.DateTimeOriginal|date('U') }}
{# audio duration in seconds #}
{{ asset('song.mp3').duration|round }} s
{# video duration in seconds #}
{{ asset('movie.mp4').duration|round }} s
{# file integrity hash #}
{% set integrity = asset('styles.scss').integrity %} integrity
Creates the hash (sha384) of a file (from an asset or a path).
{{ integrity(asset) }} Used for SRI (Subresource Integrity).
Example:
{{ integrity('styles.css') }}
{# sha384-oGDH3qCjzMm/vI+jF4U5kdQW0eAydL8ZqXjHaLLGduOsvhPRED9v3el/sbiLa/9g #}