Monday, March 17, 2014

Script link URL in SharePoint Visual Web Part

Script link URL in SharePoint Visual Web Part


To reference a JavaScript file in SharePoint visual web part, you may want to do this


<script src="/_Layouts/project1/js/myTools.js"></script>

There is a potential problem with this approach. For example, if your site url is http://xyz.com/sites/hr, the JavaScript file will be loaded from url http://xyz.com/_layouts/project1/myTools.js instead of http://xyz.com/sites/hr/_layouts/project1/myTools.js.
If the site http://xyz.com/ doesn't exist, the file will not be found.

There are four different ways to load the JavaScript file with correct site collection root url.

1. Use SharePoint ScriptLink and ~sitecollection token


<SharePoint:ScriptLink ID="ScriptLink2" language="javascript" name="~sitecollection/_Layouts/MI.EGR/js/MedInsight.SummaryReport.js" runat="server"/>

2. Use relative url in <script> assuming you always know where the web part will be used, for example from the pages library.

<script src="../../_Layouts/MI.EGR/js/MedInsight.BenefitsInsights.js"></script>

3. Use inline server side code in the page


<script src="<%=SPContext.Current.Web.ServerRelativeUrl %>/_Layouts/MI.EGR/js/MedInsight.BenefitsInsights.js"></script>

4. Use server side code to load JavaScript file

See:
How to: Add Client Script Dynamically to ASP.NET Web Pages http://msdn.microsoft.com/en-us/library/ms178207(v=vs.100).aspx

No comments:

Post a Comment