Search code examples
phpjavascriptlaravelassetslaravel-3

How to call one javascript asset only in laravel?


In my base controller, I added two asset inside:

    Asset::script('jquery', 'js/jquery-2.0.0.min.js');

    Asset::script('test', 'js/test.js');

But when I called : Asset::script, all these two .js files are loaded. But I would like to call jquery, not test, how can I do so? Thanks.


Solution

  • You could use two containers. Asset::script('name','path') will add the script to the default container. And it will output the whole container for you later when you call Asset:scripts() in the template file.

    You can add a different container for either test.js or jquery, like this:

    Asset::container('myContainerName')->add('test', 'js/test.js');
    

    Then later in your template file you can output only the scripts from the container named "myContainerName" like this:

    echo Asset::container('myContainerName')->scripts();
    

    This isn't exactly the same as outputting a specific script from a single container, but it will give you your desired result.

    Read more about containers in the official documentation: http://laravel.com/docs/views/assets