Blog

ScriptLink registration in SharePoint 2013 sandbox solution causes blank page


by Tobias Lekman, 03 January, 2013

When publishing a custom action for registering jQuery or another external script via ScriptLink, you might get a blank white page.

<CustomAction
Id="LoadJQuery"
ScriptSrc="https://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"
Location="ScriptLink"
Sequence="100" />

Sample 1: External script link that will not render correctly

Based on this it will look for a folder called "Scripts" inside of your "15/TEMPLATE/LAYOUTS" folder.  This will only work if the solution is full trust since the sandbox will not have access.

To get around the issue, you must deploy the file to the local SPWeb and reference the file using the relative handler “~site”.

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<CustomAction
Id="LoadJQuery"
ScriptSrc="~site/script/jquery-1_8_3_min.js"
Location="ScriptLink"
Sequence="100" />
<Module Name="ScriptRegistration">
<File
Path="script\jquery-1_8_3_min.js"
Url="script/jquery-1_8_3_min.js" />
</Module>
</Elements>

Sample 2: Complete elements declaration of internal referenced script link that will render correctly.