URLs and tokens in SharePoint
Learn how to formulate URLs and how to use URL tokens in SharePoint.
Types of URLs in SharePoint
SharePoint parses URL strings to determine the form of URL based on a specified protocol (for example, http:) or on the placement of a forward slash (/) within the string. Depending on the particular member, you can use the following URL forms:
An absolute URL specifies a full path and begins with a protocol. For example,
http://
domain_or_server/[sites/
] Web_Site/Lists
/ List_Title/AllItems.aspx
.A domain-relative URL is based on the domain (which might be the name of a server) address and always begins with a forward slash. It specifies a complete path from top-level website to file name. For example, /[
sites/
] Web_Site/Lists
/ List_Title/AllItems.aspx
.A website-relative URL is based on the address of a website object ( SPWeb ). It does not begin with a forward slash, and it specifies a complete path from the website address to the file name. For example,
Lists/
List_Title/AllItems.aspx
.A URL relative to a file or folder is based on the folder containing the file. It does not contain any forward slashes. It simply specifies the name of the file. For example,
AllItems.aspx
.
Note
There is no concept of a "site collection-relative URL"; passing such a URL may cause the code to fail.
Good practice for image URLs
When you create a URL to an image file that is located in the %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\15\TEMPLATE\LAYOUTS\1033\IMAGES directory, specify a path that uses the root website of the site collection, but that does not include a subsite within the path. For example, use /_layouts/images/MyImage.gif for an image file, not /MySubsite/_layouts/images/MyImage.gif. This is because subsite URLs are resolved in different ways depending on where they are used. You can ignore these variations if you always use the root website-relative URL.
URL tokens in SharePoint
SharePoint supports the tokens listed in the following tables for use in either SharePoint Add-ins or farm solutions. In addition, some tokens are usable only in apps. For more information about them, see URL strings and tokens in SharePoint Add-ins.
The tokens in the tables of this section can be used in URLs in a wide variety of situations in SharePoint development, such as in custom actions and in links on custom pages. In some contexts, some of these tokens cannot be used. Three of the most important places where only a restricted list of tokens can be used are the start page of an app, a custom action on the host web, and the Src property of an app part. These are called out in separate columns, but these three are not an exhaustive list of places where tokens can be used.
The StartPage column specifies whether the token can be used in the StartPage element of an app manifest. The Custom Action column specifies whether the token can be used in the URL of a custom action on a host web. The App Part column specifies whether the token can be used in the Src property of the app part.
Tokens that can be used at the beginning of a URL
Token | Resolves to | StartPage | Custom Action | App Part | Remarks |
---|---|---|---|---|---|
~controlTemplates |
The URL of the ControlTemplates virtual folder for the current website. |
No |
No |
No |
|
~layouts |
The URL of the Layouts virtual folder for the current website. |
No |
No |
No |
|
~site |
The URL of the current website. |
No |
No |
Yes |
|
~sitecollection |
The URL of the parent site collection of the current website. |
No |
No |
Yes |
Except where indicated otherwise, none of these tokens in the next table can be used in the path portion of the Src property value of the app part. The App Part column refers to their use in the query string portion of the value.
Tokens that can be used inside a URL
Token | Resolves to | StartPage | Custom Action | App Part | Remarks |
---|---|---|---|---|---|
{ControlTemplates} |
The URL of the ControlTemplates virtual folder for the current website. |
No |
No |
No |
|
{ItemId} |
The ID of an item in a list or library (an integer). |
No |
Yes |
No |
|
{ItemUrl} |
The URL of the item being acted upon. |
No |
Yes |
No |
|
{Layouts} |
The URL of the Layouts virtual folder for the current website. |
No |
No |
No |
|
{ListId} |
The ID of the current list (a GUID). |
No |
Yes |
No |
|
{RecurrenceId} |
The recurrence index of a recurring event. |
No |
Yes |
No |
This token is not supported for use in the context menus of list items. |
{Site} |
The URL of the current website. |
No |
Yes |
Yes |
|
{SiteCollection} |
The URL of the parent site of the current website. |
No |
Yes |
Yes |
|
{SiteUrl} |
The URL of the current website. |
No |
Yes |
No |
|
{Source} |
The HTTP Request URL. |
No |
Yes |
No |