dirname(__FILE__) добавляет путь после моего домена

Вот моя проблема с использованием PHP-функции dirname()

Позвольте мне сначала объяснить, я работаю над веб-сайтом, где я определил константу следующим образом:

define('ROOT', dirname(__FILE__));

Это хорошо работало на виртуальном хостинге, но мне пришлось перенести сайт на выделенный сервер, и теперь некоторые файлы, которые я пытаюсь вызвать по абсолютной ссылке, возвращают 404. Когда я смотрю, какой путь они используют, появляется что-то вроде этого:

http://myIp/var/www/myWebsite/[...]/image.jpg

Что происходит, так это то, что моей константой «ROOT» является «/var/www/myWebsite», но вместо «Замена» моего домена она добавляется в конце. Что не имеет смысла, поскольку мой Apache VirtualHost отправляет все запросы к «myIp» в локальную папку «/var/www/myWebsite».

Я не знаю, связана ли ошибка с моим PHP-кодом или с моим Apache VirtualHost.

Спасибо за вашу помощь, я уверен, что это что-то глупое, но я не могу понять, что я сделал не так :)


person Mesian    schedule 30.01.2015    source источник
comment
Почему бы вам не определить эту константу ROOT конкретно? Вывод сегмента пути относительного веб-сайта из текущего рабочего каталога несколько сложнее.   -  person mario    schedule 30.01.2015
comment
Да, я хотел бы, мне нужна просто постоянная переменная, которую я могу вызвать, чтобы сократить вызовы изображений, я хотя это был правильный способ сделать это, но поскольку dirname() превращает относительный путь в абсолютный путь , Я, вероятно, не делаю самую чистую вещь.   -  person Mesian    schedule 30.01.2015


Ответы (1)


Я думаю, вы путаете пути сервера с путями сайта.

Вы бы не хотели использовать имя каталога, чтобы указать путь к веб-ресурсу.

Что вы могли бы сделать, если вы действительно хотите сделать это таким образом, так это удалить путь к вашему веб-корню.

Это может сработать:

define('ROOT', str_replace('/var/www/myWebsite/', '/', dirname(__FILE__)));

person edmondscommerce    schedule 30.01.2015
comment
Вы правы, и это подходит к тому, что я хочу, но тогда как вы называете путь к корневому сайту? Хотя путь к корневому сайту и путь к корневому серверу были идентичными - person Mesian; 30.01.2015
comment
Путь к корневому веб-сайту — /, тогда как абсолютный путь на сервере к корневому веб-сайту — /var/www/myWebsite/ (или что-то еще) - person edmondscommerce; 30.01.2015