에 page.html.twig
당신 것입니다 작동이 {{ base_path }}
변수를. 모든 템플릿에서 사용할 수없는 이유는 모르겠습니다. 내가해야한다고 생각하고 다른 모든 것이 지저분 해 보이는 것처럼, 내가 선호하는 솔루션은 Drupal이 필요한 모든 장소에 대한 전처리 페이지 기능에서와 똑같이하는 것입니다.
{{ base_path }}
example이라는 테마에서 템플릿을 차단할 수 있게 하려면 이 코드를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의 대답은 예쁜 템플릿에 대한 욕구를 억제 할 수 있지만 제대로 할 수 없다면 잘 작동합니다.