Определение root_path для внешнего доступа

Я создаю локальное веб-приложение для своей компании и пытаюсь запустить его на веб-сервере xampp. Моя проблема в том, что я хочу настроить корневую папку один раз и ссылаться на нее во всех моих файлах.

Например, моя структура папок выглядит следующим образом:

root/index.php
root/include/includefiles.php
root/reles/ajustes/ajustes.php
root/classes/html/menu.php
root/classes/html/rodape.php
root/img/head.png

Все мои файлы должны включать файлы menu.php и rodape.php

Используя относительные пути, я бы сделал "include ../../classes/html/menu.php" а также "../classes/html/menu.php"

Пока там все нормально, но в моем файле menu.php у меня есть ссылка на другие файлы, и я не могу использовать относительные пути для ссылки на него, потому что в index.php ссылка будет "/img/head.png" и на ajustes.php будет «../../img/head.png"

Мое решение состоит в том, чтобы определить корневой путь, и я бы связал все мои относительные пути к ROOT_PATH."/img/head.png".

Я нашел несколько решений для этого, который работал. Моя проблема возникает, когда я пытаюсь получить доступ к своему приложению извне, с другого компьютера, используя мой IP-адрес хоста, я могу получить доступ к своему веб-сайту, но ссылка отображается как "c:/xampp/htdocs..."и я не хочу этого, я хочу, чтобы ссылки появлялись как "http://host-ip/img/head.png",

0

Решение

Хорошей практикой при определении путей включения является добавление __DIR__ магическая константа перед включаемым путем. Таким образом, путь всегда определяется относительно каталога текущего файла, а не рабочего каталога.

У вас должен быть другой корневой путь для общедоступных URL-адресов и внутренних путей сервера. Поэтому я бы рекомендовал использовать __DIR__ for включает и другие внутренние пути сервера и другую константу, которая будет использоваться в html и других общедоступных путях.

Изменить: чтобы уточнить: внутренний путь к серверу — это фактический путь на сервере (www_root / foo / bar), а открытый путь — это тот, который серверное программное обеспечение передает через http (http://example.com/foo/bar)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]