Пути для изображений с использованием Apache с Windows - PullRequest
0 голосов
/ 21 июня 2010

У меня проблема с локальным тестированием ссылок с использованием Apache с Windows. Окончательные ссылки имеют следующий формат:

file:///C:/Documents and Settings/USUARIO/My Documents/xampp/htdocs/my_website/images/january/my_image.jpg

Изображения не отображаются. Однако, если я напрямую скопирую src из тега img и вставлю его в браузер (Firefox), появится изображение.

Я генерирую ссылки, используя следующий код:

Я определяю каталог изображений, используя: define(IMAGE_DIR, dirname(__FILE__).'/images/');
Затем я использую следующее для форматирования пути:

$imgPath = IMAGE_DIR.$month.$img;   
if($localServer)
{
   $imgPath = str_replace('/','\\', $imgPath);
   $imgPath = 'file:///'.$imgPath;
}

Что я не так делаю?

Ответы [ 2 ]

2 голосов
/ 21 июня 2010

Вы создаете источники изображений, которые используют file:// URL-адреса на странице, которая была загружена с веб-сервера. URL-адреса файлов указывают браузеру загружать файл непосредственно с диска, не обращаясь к веб-серверу. Из соображений безопасности Firefox и другие браузеры не позволяют страницам, обслуживаемым веб-сервером, ссылаться на локальные файлы, поэтому не показывайте изображения. Люди, получающие удаленный доступ к вашему сайту, также не смогут получить доступ к файлам, потому что источником изображения будет ссылка на путь на их компьютере.

Чтобы изображения отображались, вам нужно изменить источники изображений, чтобы они ссылались на местоположения на веб-сервере, например images/january/my_image.jpg или /images/january/my_image.jpg.

images/january/my_image.jpg будет интерпретироваться веб-браузером относительно запрашиваемой страницы. Например, если изображение появляется на странице в http://localhost/page1.php, то браузер запросит http://localhost/images/january/my_image.jpg. Однако, если изображение используется на странице в <a href="http://localhost/" rel="nofollow noreferrer">http://localhost/</a><strong>subdir</strong>/page1.php, браузер запросит <a href="http://localhost/" rel="nofollow noreferrer">http://localhost/</a><strong>subdir</strong>/images/january/my_image.jpg.

<strong>/</strong>images/january/my_image.jpg всегда будет интерпретироваться относительно корня сайта. Веб-браузер запросит http://localhost/images/january/my_image.jpg для любой страницы на http://localhost.

Вы также можете использовать абсолютный URL, если вам нужно сослаться на изображение на другом веб-сервере, например, http://otherhost/images/january/my_image.jpg.

0 голосов
/ 21 июня 2010

Лучше использовать константу "DIRECTORY_SEPARATOR" вместо '/' или '\'

...