Di dalamnya page.html.twigAnda akan memiliki {{ base_path }}variabel yang berfungsi . Mengapa tidak tersedia di setiap templat, saya tidak tahu. Seperti yang saya pikir seharusnya dan segala sesuatu tampak berantakan, solusi pilihan saya adalah melakukan persis seperti yang dilakukan Drupal di fungsi halaman preproses untuk tempat yang saya butuhkan.
Agar {{ base_path }}tersedia untuk memblokir template dalam tema bernama contoh, tambahkan kode ini ke example.themefile:
/**
* Implements hook_preprocess_block().
*/
function example_preprocess_block(&$variables) {
$variables['base_path'] = base_path();
}
Seperti disebutkan dalam jawaban yang diterima yang disediakan oleh MPD, jika mendapatkan simpul atau URL entitas lain ada metode untuk melakukan semuanya untuk Anda.
Namun, ada alasan untuk mendapatkan base_path, seperti saat menampilkan gambar yang hidup di folder tema Anda. {{ directory }}menyediakan path ke folder tema, tetapi meninggalkan path dasar (biasanya hanya a / tetapi untuk mempertahankan fungsi Drupal yang tepat dari subdirektori domain yang tidak boleh di-hardcode). Pada page.html.twigatau dalam templat apa pun yang memiliki preprosesor di atas, ini akan berfungsi untuk tujuan itu:
<img src="{{ base_path ~ directory }}/images/nsf1.svg"
alt="National Science Foundation logo" height="80" width="80" />
Dan tentu saja jawaban Shawn Conn bekerja dengan baik jika Anda dapat menekan keinginan Anda untuk template cantik, tetapi saya tidak bisa.