@alexandrnevajno1

Почему html не видит абсолютный путь ( define('DOCROOT', realpath(dirname(__FILE__)). DIRECTORY_SEPARATOR); )?

Здравствуйте. Хочу сделать вывод картинки, а путь задать абсолютно. У меня есть вот такая php константа:
define('DOCROOT', realpath(dirname(__FILE__)) . DIRECTORY_SEPARATOR);

И к ней добавляю путь от корня:
$directory = DOCROOT . 'files/catalog/items/';
Потом имя файла. И вывожу это в src для img. Но изображение не показывается. Однако если путь из src ввести в адресной строке браузера, открывается изображение. Почему оно у меня не показывается? И как тогда правильно задавать абсолютный путь?
P.S. может это от того, что я на локальном сервере это делаю?
  • Вопрос задан
  • 305 просмотров
Пригласить эксперта
Ответы на вопрос 1
@neol
Абсолютный путь в локальной файловой системе не тоже самое, что абсолютный путь веб сервера.
Допустим у вас сайт лежит в /var/www и картинка в images/1.jpg
Абсолютный путь будет /var/www/images/1.jpg
Но для веб сервера корень задан как /var/www и если вы передаёте src="/var/www/images/1.jpg", то к этому пути добавляется адрес сайта (например http://127.0.0.1) и запрос уходит на веб сервер, который будет искать уже /var/www/var/www/images/1.jpg, которого нет.

Если же вы вводите в адресную строку браузера /var/www/images/1.jpg, то адрес автоматически меняется на file:///var/www/images/1.jpg и изображение показывается (при условии, что такой файл у вас есть).

Короче говоря при выводе в HTML DOCROOT вам использовать не надо.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы