ではpage.html.twig
、あなたなりの作業持っている{{ base_path }}
変数を。なぜすべてのテンプレートで利用できないのか、私にはわかりません。私はそれがあるべきだと思うし、他のすべてが面倒に見えるので、私の好ましい解決策は、必要な場所のDrupalがプリプロセスページ機能で行うように正確に行うことです。
ようにするには{{ base_path }}
例という名前のテーマにテンプレートを阻止するために利用できる、このコードを追加しexample.theme
たファイル:
/**
* Implements hook_preprocess_block().
*/
function example_preprocess_block(&$variables) {
$variables['base_path'] = base_path();
}
MPDが提供する承認済みの回答に記載されているように、ノードまたは他のエンティティのURLを取得する場合、すべてを実行する方法があります。
ただし、base_pathを取得する理由は、テーマフォルダーにある画像を表示するときなどです。 {{ directory }}
テーマフォルダーへのパスを提供しますが、ベースパスは省略します(通常は単に/ですが、ハードコードされてはならないドメインのサブディレクトリからDrupalの適切な機能を維持するため)。上page.html.twig
または上記preprocesserを持つ任意のテンプレートで、これはその目的のために動作します:
<img src="{{ base_path ~ directory }}/images/nsf1.svg"
alt="National Science Foundation logo" height="80" width="80" />
もちろん、きれいなテンプレートへの欲求を抑えることができれば、Shawn Connの答えはうまくいきますが、私はできませんでした。