Create Links with Twig in a Template File for Drupal 8, 9, and 10

If you want to create a link to an internal page in a Twig template--and there's not already a variable in the template that contains the URL you want to link to--you'll need to determine the route of the thing you want to link to and then use the Twig url() or path() functions to generate appropriate URLs. In most cases when you want to create a link to an entity that is being output by the current template there's an existing helper variable to use. For example, in a node.html.twig template file there's a url variable that points to the current node. For other scenarios, like hard-coding a link to the /about page, you'll need to do a little more work.

In this tutorial, we'll:

  • Get the absolute URL value
  • Get the relative path value
  • Generate HTML for a link
  • Get the URI to a file, like an image in the Media library
  • Get the active theme path

By the end of this tutorial you should be able to create links to any internal page via Twig.

Theming Drupal Sites