spatie/asset-helper

Get the url to a revisioned asset

2.0.0 2016-04-22 10:15 UTC

This package is auto-updated.

Last update: 2024-11-09 22:23:44 UTC


README

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.

Support us

Learn how to create a package like this one, by watching our premium video course:

Laravel Package training

We invest a lot of resources into creating best in class open source packages. You can support us by buying one of our paid products.

We highly appreciate you sending us a postcard from your hometown, mentioning which of our package(s) you are using. You'll find our address on our contact page. We publish all received postcards on our virtual postcard wall.

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, Kruikstraat 22, 2018 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.