I have created an HTML snippet which references a js file stored in site assets folder.

The path to this file in my snippet is as


In SharePoint, welcome page is set to [siteURL]/pages/home.aspx

Now In home.aspx, I have added a content editor web part having reference to above HTML snippet.

If I open home page using [siteURL]/pages/home.aspx everything works perfectly, but if I open site using [siteUrl] in the browser then it starts giving 404 error for my js file.

How can I resolve this issue, does it mean in SP we can not give a relative path for the home page?

  • Is siteassets library on the root of the site? Then just use /siteassets/myjsfile.js – Amal Hashim Aug 14 '16 at 11:46
  • aspx pages are in Pages library, while html and js files are in site assets folder. – nbi Aug 14 '16 at 11:47
  • I have this exact same problem. Did you come up with a decent solution, other than having to hard code the full path? I wish we could prevent SP from using the "/" URL for site home (Welcome) pages. i.e. always force the full path, including /pages/default.aspx... – j.strugnell Oct 12 '16 at 21:08
  • nope. For home page I had to hard code the path, but for all other pages I am using relative path. – nbi Oct 13 '16 at 7:02

Always refer the JS/CSS paths either with SP tags or starts with site url

for eaxmple. Site URL: http://www.oursharepointsite/ JS Ref URl : "/SiteAssets/MyJsFile.js"

SubSite URL: http://www.oursharepointsite/subsite/ JS Ref URl : "/subsite/SiteAssets/MyJsFile.js"

It works wherever your page resides, no matter how you refer the file either with Designer or webpart.

  • could you please explain why ../ wont work? – nbi Aug 14 '16 at 13:08
  • 1
    Due to Alternate access mapping which redirects to welcome page based on zone – Shiva Aug 14 '16 at 13:11
  • Thanks Shive, but it makes me update my html when ever I have to deploy other site :( – nbi Aug 14 '16 at 13:17
  • in this case you can try sharepoint token... ~site/SiteAssets/MyJsFile.js, Try..;like we do in webpart JS link – Shiva Aug 14 '16 at 13:18

Consider you have a Root Site and your JS files within SiteAssets library in it http://rootsite

  • So the relative URL should be


If your JS files within a SiteAssets library in a subsite http://rootsite/subsite and you need to use it at home page of root site,

  • So the relative URL should be

Based on your question you should use /SiteAssets/MyJsFile.js instead of ../SiteAssets/MyJsFile.js

  • why does ../ wont work? – nbi Aug 14 '16 at 13:08
  • As I mentioned above it depends on the location of your JS files every ../ represent subsite , Is you tried to use /SiteAssets/MyJsFile.js is it worked ? please don't hesitate if you need more clarification – Mohamed El-Qassas MVP Aug 14 '16 at 13:16
  • Yes it works, but the problem is if I need to use this in other SPO site, then I have to update the references in the HTML file – nbi Aug 14 '16 at 14:58

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.