In page.html.twig
Ihnen wird eine Arbeits haben {{ base_path }}
variabel. Warum es nicht in jeder Vorlage verfügbar ist, weiß ich nicht. Wie ich denke, sollte es sein und alles andere sieht chaotisch aus, ist meine bevorzugte Lösung, genau wie Drupal in der Vorverarbeitungsseitenfunktion für jeden Ort zu tun, den ich brauche.
{{ base_path }}
Fügen Sie der example.theme
Datei den folgenden Code hinzu, um das Blockieren von Vorlagen in einem Thema mit dem Namen example verfügbar zu machen :
/**
* Implements hook_preprocess_block().
*/
function example_preprocess_block(&$variables) {
$variables['base_path'] = base_path();
}
Wie in der akzeptierten Antwort von MPD angegeben, gibt es Methoden, um alles für Sie zu erledigen, wenn Sie die URL eines Knotens oder einer anderen Entität abrufen.
Es gibt jedoch Gründe für das Abrufen des base_path, z. B. beim Anzeigen von Bildern, die sich in Ihrem Themenordner befinden. {{ directory }}
Liefert den Pfad zum Theme-Ordner, lässt jedoch den Basispfad unberücksichtigt (normalerweise nur ein /, um die ordnungsgemäße Funktion von Drupal in einem Unterverzeichnis einer Domain zu erhalten, das nicht fest codiert werden sollte). Auf page.html.twig
oder in einer Vorlage, die den obigen Vorprozessor hat, funktioniert dies für diesen Zweck:
<img src="{{ base_path ~ directory }}/images/nsf1.svg"
alt="National Science Foundation logo" height="80" width="80" />
Und natürlich funktioniert Shawn Conns Antwort gut, wenn Sie Ihren Wunsch nach hübschen Vorlagen unterdrücken können, aber ich konnte nicht.