W page.html.twig
tobie będzie działał{{ base_path }}
zmienną. Dlaczego nie jest dostępny w każdym szablonie, nie mam pojęcia. Tak jak powinienem, a wszystko inne wygląda na niechlujne, moim preferowanym rozwiązaniem jest robienie dokładnie tak, jak Drupal w funkcji strony przedprocesowej dla dowolnego miejsca, w którym jest to potrzebne.
Aby {{ base_path }}
udostępnić blokowanie szablonów w kompozycji o nazwie przykład, dodaj ten kod do example.theme
pliku:
/**
* Implements hook_preprocess_block().
*/
function example_preprocess_block(&$variables) {
$variables['base_path'] = base_path();
}
Jak zauważono w zaakceptowanej odpowiedzi udzielonej przez MPD, jeśli uzyskasz adres URL węzła lub innego podmiotu, istnieją metody, aby zrobić to wszystko za Ciebie.
Istnieją jednak powody, aby uzyskać ścieżkę_podstawową, na przykład podczas wyświetlania obrazów, które znajdują się w folderze motywu. {{ directory }}
zapewnia ścieżkę do folderu motywu, ale pozostawia ścieżkę podstawową (zwykle tylko /, ale w celu zachowania prawidłowego funkcjonowania Drupala z podkatalogu domeny, który nie powinien być zakodowany na stałe). W przypadku page.html.twig
dowolnego szablonu, który ma powyższą procedurę wstępną, będzie to działać w tym celu:
<img src="{{ base_path ~ directory }}/images/nsf1.svg"
alt="National Science Foundation logo" height="80" width="80" />
I oczywiście odpowiedź Shawna Conna działa dobrze, jeśli możesz stłumić swoje pragnienie pięknych szablonów, ale nie mogłem.