Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • apload-gmbh 39 posts 109 karma points
    Sep 22, 2022 @ 07:22
    apload-gmbh
    0

    JavaScript libraries only in master.cshtml

    Hi everyone

    I noticed that a JS-Library didn't work, when I put it directly in a template of a documenttype which is rendered somewhere in <body>. I know it is better to put it in the <head> or just before the closing , but sometimes it was the best to put a script like the following just beside it, where it's needed.

    <script src="lightgallery.js"></script>
    
    <script>$("#lightgallery").lightGallery();</script>
    
    <div id="lightgallery">
    ...
    </div>
    

    In Umbraco 8 it worked very well. Now with Umbraco 9 I had to put `

    <script src="lightgallery.js"></script>
    

    ` into the master.cshtml and had to make an if-statement that it doesn't load on every page.

    Is that really the only way to make it work?

    Thanks

  • Huw Reddick 1932 posts 6722 karma points MVP 2x c-trib
    Sep 22, 2022 @ 07:51
    Huw Reddick
    100

    if thes are view templates, you could define a secion in your master template which you then use in your view templates to add extra scripts.

    Example, in master template

        @await RenderSectionAsync("ExtraScripts", false)
    </body>
    

    Then in your View template you can do the following

    @section ExtraScripts
    {
        <script type="text/javascript" src="/scripts/vantage.ecommerce.cart.js"></script>    
    }
    

    So now when your view loads, it's js include will get rendered correctly.

    Note, this only works in a View, it will not work for partial views. If you need to include js in a partial view then you can create an extension to do so.

  • This forum is in read-only mode while we transition to the new forum.

    You can continue this topic on the new forum by tapping the "Continue discussion" link below.

Please Sign in or register to post replies