Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Asset Helper Laravel Package

spatie/asset-helper

Laravel 4 helper to generate URLs for revisioned/cache-busted assets. Given an original name like admin.css, it finds the hashed version in your public assets folder and returns a URL such as /assets/admin.0ce5cb43.css.

View on GitHub
Deep Wiki
Context7

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.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport