spatie / asset-helper by spatie

Get the url to a revisioned asset
877
23
5
Package Data
Maintainer Username: spatie
Maintainer Contact: freek@spatie.be (Freek Van der Herten)
Package Create Date: 2014-08-30
Package Last Update: 2022-03-09
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-12-22 03:11:53
Package Statistics
Total Downloads: 877
Monthly Downloads: 1
Daily Downloads: 0
Total Stars: 23
Total Watchers: 5
Total Forks: 3
Total Open Issues: 0

Get the url to a revisioned asset

Latest Stable Version License

This Laravel 4 package enables you to get an url to a revisioned asset.

That sounds a bit vague, right? Let me clear it up by showing an example. Calling this provided method Asset::getUrl('admin.css') returns /assets/admin.0ce5cb43.css

This package assumes that your asset pipeline:

  • saves all of your assets in one public folder.
  • puts a random string in the filename of every asset as a cache-busting mechanism

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.

Postcardware

You're free to use this package (it's MIT-licensed), but if it makes it to your production environment you are required to send us a postcard from your hometown, mentioning which of our package(s) you are using.

Our address is: Spatie, Samberstraat 69D, 2060 Antwerp, Belgium.

The best postcards will get published on the open source page on our website.

##Installation The package can be installed through Composer:

composer require spatie/asset-helper

This service provider must be installed:


//for laravel <=4.2: app/config/app.php

'providers' => [
    ...
    'Spatie\AssetHelper\AssetHelperServiceProvider'
    ...
];

This package also comes with a facade, which provides an easy way to call the the functionality.


//for laravel <=4.2: app/config/app.php

'aliases' => array(
	...
	'Asset' => 'Spatie\AssetHelper\AssetHelperFacade',
	...
)

##Configuration You can publish the configuration file using this command:

php artisan config:publish spatie/asset-helper

A configuration-file with some sensible defaults will be placed in your config/packages directory:

return
    [
        /**
         * The url that points to the directory were your assets are stored
         *
         */
        'assetDirectoryUrl'         =>  '/assets',
    ];

##Usage Asset::getUrl($nonRevisionedAssetName) takes a non-revisioned asset name and it returns the url to the revisioned asset.

##Example Let's assume the public path of your website is /home/forge/yourwebsite.be/public and that your asset pipeline stores the minified, uglified, ... and whatnot assets in this directory: /home/forge/yourwebsite.be/public/assets

Suppose this is the contents of that directory:

  • admin.0ce5cb43.css
  • admin.defer.adc60631.js
  • admin.head.1954b61c.js
  • front.0b4c09c7.css
  • front.defer.1ba6b072.js
  • front.head.1954b61c.js

As a cache-busting mechanism your asset pipeline probably puts a random string in the filename of the asset. In the example above this is '0ce5cb43', 'adc60631', '1954b61c.js', ...

Calling Asset::getUrl('admin.css') returns /assets/admin.0ce5cb43.css

So your layout file could look something like this:

<!DOCTYPE html>

<head>
    ... 
    <script type="text/javascript" src="<?= Asset::getUrl('front.head.js') ?>"></script>
    <link rel="stylesheet" href="<?= Asset::getUrl('front.css') ?>" type="text/css" media="screen"/>
    ...
</head>
<body>
    ...
    <script type="text/javascript" src="<?= Asset::getUrl('front.defer.js') ?>"></script>
</body>
</html>

About Spatie

Spatie is a webdesign agency in Antwerp, Belgium. You'll find an overview of all our open source projects on our website.