Как избежать неработающих ссылок в общем заголовочном файле
У меня есть общий header.php для включения практически на каждой странице сайта. У меня есть относительные ссылки на различные ресурсы в файле header.php. Как только я включу его в другие страницы, расположенные в разных подпапках в корневой папке, некоторые ссылки прекратят работу. Я могу сделать все ссылки в header.php абсолютными. Теперь возникает другая проблема: если вы переместите приложение в другой домен и поместите его где-нибудь под wwwroot, абсолютные ссылки не будут работать. Я не мог найти способ в PHP извлечь часть URL, которая является корнем для этого приложения. В итоге я определил переменную для корня приложения и добавил к этой переменной каждую ссылку внутри header.php. Таким образом, мне нужно изменить только одну переменную, когда это приложение перемещается из одного места в другое.
Мне интересно, есть ли другие лучшие способы справиться с такой ситуацией.
Ваша обратная связь будет высоко ценится.
Изменить: в надежде получить больше обратной связи.
1 ответ
Вы пишете, что это обычный файл header.php, как с центральной переменной, вы можете использовать <base>
Элемент HTML - но это ограничено HTML.
Вы можете создать функцию отображения, которая может разрешать абсолютные URL-адреса в URI запроса или разрешать относительные URL-адреса в контексте, из которого они исходят, так что они могут быть сопоставлены абсолютно относительно URI запроса.
Затем вы можете реализовать выходной фильтр, который обрабатывает URI самостоятельно, и вы можете сделать некоторые специальные префиксы для специальных обработок.