Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: проблема с указанием пути к графике
 
 автор: Sergi   (10.05.2009 в 01:21)   письмо автору
 
 

всем привет

мне прямь стыдно, но недавно столкнулся с такой проблемой
вроде не первый день пишу html.
короче проблема:

я настроил на домашнем ПК сервер чтобы все выглядело как на хостинге
в общем сейчас при обращении к "www.test.com"
выдается содержимое папки d:/server/test
все класно в папке "test" создал еще одну папку скажем "1" а в ней лежит index.html
т.е. к index.html обращаюсь через "http://www.test.com/1/index.html" все работает.
потом я положил в папку "test" графику. и кое что заметил:
раньше я обращался к графике из index.html вот так "<img src="../pic.jpg" />
т.е. поднимался на уровень выше и брал графику, а теперь заметил что
графика доступна и через "<img src=/pic.jpg" /> результат один.
как я понял что второй вариант со слешем впереди указывает
на путь от "www.test.com" те абсолютный путь от сервера
но я думал что этот вариан работает только если указать <base href="..."
что то я совсем запутался. ЧТО ЗНАЧИТ этот слеш впереди?
даже указав "<img src="../../../../pic.jpg" />" ГРАФИКА показывается ПОЧЕМУ???

спасибо

  Ответить  
 
 автор: PAT   (10.05.2009 в 09:59)   письмо автору
 
   для: Sergi   (10.05.2009 в 01:21)
 

просто / - это КОРЕНЬ сайта.
Так было всегда, ещё начиная с MS DOS, когда на чёрном фоне после загрузки рисовалось C:/, т.е. не просто C:, а "корень диска С:"


../ показывает, как вы правильно заметили, папку выше уровнем.
../../ - двумя уровнями выше.
../../../ - тремя выше...

Ну а если вы ошиблись в подсчётах и переборщили, а уровня выше нет?
Тогда система оставляет вас на самом верхнем из возможных уровней.

В принципе - это единственно правильный подход.
Браузер ДОЛЖЕН сформировать ссылку, какую бы вы фигню в атрибутах HREF и SRC не написали.
Вот он и пытается сделать хоть что-то похожее на правильный путь.
Инструкцией ../../../../../../../ вы вышли за пределы корня своего домена.
А выходить из него относительным путём вы не можете. Вот вас и ограничивают.

Аналогично, например, когда вы пишете для файла, который должен находиться в ифрейме/фрейме в ссылке
<a href="myURL" target="_parent"> или <a href="myURL" target="_top">,
то тем самым указываете браузеру загрузить myURL в родительское окно (или в самое верхнее).
А куда загрузится myURL, если вы исходный файл откроете в отдельном окне, а не во фрейме?
Правильно, в то же текущее окно и загрузится, ибо оно (это окно) и будет само себе родителем (и само себе самым верхним).


PS. В своё время я также, как и вы стоял вроде "барана перед новыми воротами", когда впервые столкнулся с путём ./ (где не две точки, а одна). Методом тыка понял, что это равносильно пустому месту - сиречь та же папка. Т.е. href="pic.gif" равносильно href="./pic.gif".
Залез в гугль и тут же нашёл, что это нормально для линукса и потому это используется.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования