5

How do I get the base_path in Drupal 8? When I use the base_path() function it always returns just the /. I know in Drupal 7 you could set the base_url in the settings.php file, but how do I set it in Drupal 8?

I'm trying to create an absolute url for social media sharing.

5

You're looking for $base_url global:

global $base_url;

If you want to have this in a preprocess function, you'd have to call it within that function; for example:

function YOUR_THEME_preprocess_whatever(&$variables) {
  global $base_url;
  // Now you can use it.
  $variables['base_url'] = $base_url;
}
  • I tried that, and it too only returns / - what ended up working was calling $GLOBALS['base_url']; – Janey Mar 4 '16 at 7:50
  • That's strange; it shouldn't work that way. I tested it on a couple of D8 sites (live and dev) and it works fine. $GLOBALS['base_url'] is equivalent of the code I wrote above. – Aram Boyajyan Mar 4 '16 at 8:05
  • I also thought it should do the same thing. What I did is add global $base_url to the top of my themename.theme file and then in one of my preprocess functions I tried accessing $base_url, and I get an error 'Undefined variable: base_url' ? am i doing something wrong there? – Janey Mar 4 '16 at 8:10
  • Yes :) you need to add it within your preprocess function. I'll update the answer. – Aram Boyajyan Mar 4 '16 at 8:11

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.