hugo/docs/content/functions/relurl.md
2017-07-18 10:33:58 +02:00

1.9 KiB

title description godocref date publishdate lastmod categories menu signature workson hugoversion relatedfuncs deprecated aliases
relURL Given a string, prepends the relative URL according to a page's position in the project directory structure. 2017-02-01 2017-02-01 2017-02-01
functions
docs
parent
functions
relURL INPUT
absURL
false

Both absURL and relURL consider the configured value of baseURL in your site's config file. Given a baseURL set to http://yoursite.com/hugo/:

{{ "mystyle.css" | absURL }}  "http://yoursite.com/hugo/mystyle.css"
{{ "mystyle.css" | relURL }}  "/hugo/mystyle.css"
{{ "http://gohugo.io/" | relURL }}   "http://gohugo.io/"
{{ "http://gohugo.io/" | absURL }}   "http://gohugo.io/"

The last two examples may look strange but can be very useful. For example, the following shows how to use absURL in JSON-LD structured data for SEO where some of your images for a piece of content may or may not be hosted locally:

{{% code file="layouts/partials/schemaorg-metadata.html" download="schemaorg-metadata.html" %}}

<script type="application/ld+json">
{
    "@context" : "http://schema.org",
    "@type" : "BlogPosting",
    "image" : {{ apply .Params.images "absURL" "." }}
}
</script>

{{% /code %}}

The above uses the apply function and also exposes how the Go template parser JSON-encodes objects inside <script> tags. See the safeJS template function for examples of how to tell Hugo not to escape strings inside of such tags.

{{% note "Ending Slash" %}} absURL and relURL are smart about missing slashes, but they will not add a closing slash to a URL if it is not present. {{% /note %}}