Files
hugo/docs/content/en/functions/absurl.md
2021-10-31 13:53:55 +01:00

1.9 KiB

title, description, date, publishdate, lastmod, categories, menu, keywords, signature, workson, hugoversion, relatedfuncs, deprecated, aliases
title description date publishdate lastmod categories menu keywords signature workson hugoversion relatedfuncs deprecated aliases
absURL Creates an absolute URL based on the configured baseURL. 2017-02-01 2017-02-01 2017-02-01
functions
docs
parent
functions
urls
absURL INPUT
relURL
false

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

{{ "mystyle.css" | absURL }} → "https://example.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 (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 %}}