2015-03-13 5 views
2

Действительно новое для веб-разработки, но я не могу понять, почему моя ссылка относительного изображения не работает. У меня есть index.php в DocumentRoot [/ var/www/vhosts/project0/html /], с отдельной папкой, где я поместил свои изображения [/ var/www/vhosts/project0/images /]. Я посмотрел на разрешения, и они выглядят нормально; см Ls -l выход на [/ вар/WWW/виртуальных доменов/project0 /] ниже:Относительная ссылка на HTML-изображение (LAMP)

  • drwxr-хт-х 2 Aiden Aiden 4096 12 марта 18:48 HTML
  • drwxr-хт-х 2 Aiden Айден 4096 14 февраля 12:12 изображения

Мой HTML выглядит следующим образом:

<!DOCTYPE html> 

<html> 
    <head> 
    <link type="text/css" rel="stylesheet" href="stylesheet.css"/> 
    <title>My Lecture Reader</title> 
    </head> 
    <body> 
    <h1>CSCI S-75</h1> 
    <ul> 
     <img src="P001.jpg"/> <br> <!-- Works --> 
     <img src="../images/P001.jpg"/> <br> <!-- Doesn't Work --> 
    </ul> 
    </body> 
</html> 

Примечание: Я скопировал P001.jpg из изображений/в HTML/для отладки.

Я запускаю Xbuntu на VirtualBox, с Apache2 в качестве веб-сервера.

Если вы можете помочь или указать мне в правильном направлении, это было бы замечательно.

Приветствия,

Эйден

EXTRA ОПИСАНИЕ: Экстракт

project0.conf:

<VirtualHost *:80> 
    ServerName project0 

    ServerAdmin [email protected] 
    DocumentRoot /var/www/vhosts/project0/html/ 
    ErrorLog ${APACHE_LOG_DIR}/error.log 
    CustomLog ${APACHE_LOG_DIR}/access.log combined 
</VirtualHost> 
+1

Это _might_ будет проблема с разрешениями папки. Или с конфигурацией сервиса http для этой части предоставленных документов. Вам нужно будет добавить дополнительные сведения к вашему вопросу. – arkascha

+4

Общий намек: обычно один помещает папку изображений _inside_ в базовую папку, где находится индексный документ. – arkascha

+1

согласен с @arkascha, обычно вы помещаете index.html во внешнюю большую папку вашего сайта. – aahhaa

ответ

2

мой родственник эталонное изображение не работает.

У вас есть папка с изображениями вне корня документа - так что это не сработает. Поскольку он находится вне корня документа, ваша родственная клиентская сторона URL никогда не собирается решать (вы фактически пытаетесь перейти «выше» http://example.com/). Все, что вы обслуживаете непосредственно в клиентском HTML-документе, должно быть в корне документа. (Если вы можете непосредственно получить доступ к файлам выше DocumentRoot из браузера клиентской стороны, то вы бы огромная уязвимость!)

Однако ваш стороны сервера относительного путь файловой системы (не URL) разрешает ОК, поэтому вы можете получить доступ к своим XML-файлам. Обратите внимание, что на большинстве общих серверных сред ваш серверный скрипт часто имеет доступ к 1 каталогу над «корнем документа». Это хорошее место, чтобы «скрыть» ваши серверные файлы, поскольку они не доступны напрямую из браузера (на стороне клиента).

Ваш каталог «изображений» (который вы хотите получить непосредственно из своего HTML-кода) должен быть включен в DocumentRoot, например. /var/www/vhosts/project0/html/images. После этого вы можете получить доступ к изображению, используя относительно корня пути (начиная с косой чертой) из вашего index.php документа в корне документа, таким образом:

<img src="/images/P001.jpg"> 
Смежные вопросы