2016-02-28 3 views
0

Я пытаюсь получить источник <img>, чтобы указать на файл в другом каталоге, но я боюсь.Не удается добраться до корневого каталога в HTML

В настоящее время это:

<img src="../home/image.jpg"> 

Когда мой apache2 сервер находится в:

/var/www/html/mypage.html 

Я думал .. должен получить меня там, но он не работает :(

Запуск web-сервера apache2 в Linux.

Редактировать: Я также пробовал ../../../home/user/image.jpg, как я считаю, это должно вернуть мне 3 каталога?

+0

Добавьте символическую ссылку из каталога пользователя в каталог внутри вашей html-папки и укажите там. Вы пытаетесь указать прямо на файл, который находится за пределами папки документа для Apache (и это не очень хорошая идея) –

+0

Я сделал, как было предложено, но это все еще не работает. Я символически привязал диск пользователя в/userCpy /, но я до сих пор не могу получить к нему доступ =/ –

+0

И где userCpy? –

ответ

0

Использование выше, поскольку исходный путь изображения предполагает, что его физический путь находится в «/var/www/home/image.jpg». Это верно? Я также предполагаю, что ваш корневой каталог apache находится в/var/www/html. Вы можете попробовать жестко кодировать фактический и полный физический путь вашего изображения для целей трассировки, но это не будет хорошей практикой. Наконец, вы можете проследить его в ваших журналах apache относительно того, к какому фактическому местоположению обращаются в вашем указанном исходном пути img.

+0

Нет, путь/home/user, тогда как html находится в/var/www/html –

+0

Итак, полный фактический путь изображения находится на /home/user/image.jpg? Вы можете использовать «../../../home/user/image.jpg», но вместо этого вместо этого нужно скорректировать фактический путь. В качестве альтернативы, я бы предложил создать символическую ссылку в вашем/var/www/html, которая работает как ярлык в каталоге/home/user. Например, в каталоге var/www/html создайте символическую папку с именем images, указывающую на/home/user. Теперь с вашим источником изображения вы можете просто получить доступ к нему, используя Lane

0

Любой путь, начинающийся с «/», относится к корню для более подробной информации, нажмите here. если изображение находится в «домашней» директории и «WWW» является корневой каталог, то вы можете использовать

"/home/image.jpg" 

Если изображение находится в директории, которая не находится в корневом каталоге сервера вы не можете получить доступ к нему из за пределами. Я думаю, что вы разместили изображение в неправильном каталоге, в котором должно быть ваше изображение, в корневом каталоге apache. Если клиент может получить доступ ко всем файлам с сервера, тогда ваш сервер станет обнаженным для хакеров, они смогут ставить любую информацию, которую они хотят!

0

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

Суда горе -o привязывать/sourcefolderurl/destinationfolderurl

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

+0

Это НЕ работает. Просто избавился от всего моего html-каталога и заменил его другим! –

+0

Я имею в виду - mount/home/userX/SomeSubDir as/var/www/html/RemountedSubDir. Насколько я помню, символическая ссылка не работала для меня, и вам также нужно изменить/проверить разрешения (если они еще не изменены), чтобы каждый мог читать или проверять разрешения «сервер пользователя». Я думаю, что установка sub dir в sub dir лучше всего, потому что если вы не настойчивы, вы можете потерять множество функций после перезагрузки. – Gergo

Смежные вопросы