Как я могу ввести внутреннюю ссылку, которая работает для разных длин пути и продолжает работать, когда я загружаю свой сайт на рабочий сервер?
Скажи, что у меня есть страница здесь http://локальный/сайт1/веб/страница1 и я хочу создать блок в нижнем колонтитуле со ссылкой на эту страницу.
Если я использую относительную ссылку (например, Страница 1)
Это сработает, когда я буду на этой странице...
http://локальный/сайт1/веб/
Но этого не произойдет, если я нахожусь на многосегментном пути, например...
http://localhost/site1/web/about/terms/
Если я создам ссылку, относящуюся к серверу (например, /сайт1/веб/страница1)
Не будет работать при смене сервера...
http://mysite.com/
(Я разрабатываю сайт локально на своем ПК, и когда сайт готов, я загружаю его на свой хостинг).
Кроме того, это не сработает, если я захочу клонировать сайт...
http://локальный/сайт2/веб/
Абсолютные пути (например,http://локальный/сайт1/веб/страница1)
также не будет работать, когда я запущу сайт на живом сервере.
Попробовал модуль linkit. Это работает для вышеуказанных случаев, но только для некоторых типов ссылок (например, я не смог заставить его работать для ссылок на представления).
Модуль pathologic исправил эту проблему в Drupal 7, но еще не готов для Drupal 9.
Я получил наилучшие результаты, используя модуль php (он предоставляет фильтр, который вы можете добавить в текстовый формат). Но я считаю, что использование этого модуля не одобряется.
<?php
use Drupal\Core\Link;
use Drupal\Core\Url;
print(Url::fromUserInput('/node/1')->toString());
?>
Я пропустил лучшую альтернативу? (Было бы удобно, если бы был способ сделать ссылки, относящиеся к каталогу drupal 'web'.)