Работа с относительными и абсолютными адресами файлов
При создании нового Web-сайта вам придется перенести Web-содержимое (то есть HTML-документы, графику, анимацию, звук и прочие вспомогательные файлы) с компьютера, на котором вы работали над сайтом, на целевой Web-сервер. Если ваши Web-страницы содержат ссылки на страницы, сохраненные в том же или смежных каталогах (подкаталогах или родительском каталоге), вы сможете сэкономить немало времени и усилий, используя в ссылках на файлы в HTML-дескрипторах относительные адреса.
Когда посетитель сайта щелкает на гиперссылке, Web-браузер использует адрес, заданный в атрибуте href гиперссылки, для нахождения файла, который ему необходимо извлечь. Указывая местонахождение файла, вы можете использовать либо относительный (relative), либо абсолютный (absolute) адрес. Предположим, например, что у вас есть графический файл с именем clock.jpg, который находится в папке Folder_B, и что Folder_B, в свою очередь, находится в папке Folder_A (см. рис. 1.8).
Рис. 1.8. Иерархия папок файла clock.jpg
Относительный адрес состоит из имен папок, которые необходимы браузеру, чтобы добраться до файла, начиная с местонахождения Web-страницы с гиперссылкой, указывающей на внешний файл. Например, если файл clock.jpg находится в папке Folder_B (как показано на рис. 1.8), а Web-страница, ссылающаяся на clock.jpg, находится в папке Folder_A, относительным адресом clock.jpg на данной Web-странице будет Foider_B/clock.jpg. Иными словами, текущая папка содержит папку Foider_B, которая, в свою очередь, содержит файл clock.jpg. В приведенном ниже дескрипторе <img> использован атрибут src (от source — источник) с относительным адресом:
<img src="Folder_A/clock.jpg">
Относительный адрес дает Web-браузеру указание начинать поиск файла внутри папки, содержащей текущий HTML-документ. Например, пусть HTML-документ, содержащий рисунок в дескрипторе <img> в предыдущем примере, находится в папке idx_foider. Тогда относительный адрес в атрибуте src подразумевает, что папка Foider_A находится в папке idx foider.
Абсолютные адреса, с другой стороны, указывают местонахождение файла, начиная с верхнего уровня иерархии папок и двигаясь вниз через все промежуточные папки к файлу — безотносительно местонахождению текущего Web-документа. Абсолютные адреса всегда начинаются с косой черты (/), что отличает их от относительных адресов.
Предположим, например, что файл clock.jpg находится на диске D в папке Folder_B, которая расположена в рамках папки Folder_A. Чтобы задать абсолютный адрес, вы должны сообщить браузеру, где искать файл, начиная с диска, на котором находится содержащая файл папка. В следующем коде показан абсолютный адрес файла clock.jpg из данного примера:
<img src="/D:/Folder_A/Folder_B/clock.jpg">
Использование абсолютных адресов затрудняет перенос файлов Web-сайта с локального диска на Web-сервер или с одного Web-сервера на другой. Например, для того, чтобы успешно пользоваться относительными адресами, вам нужно всего лишь создать на Web-сервере главную папку для сайта и затем поместить все документы и вспомогательные файлы в подпапки внутри главной папки — в точности как на вашей машине, на которой разрабатывался сайт. Относительные адреса будут работать на Web-сервере так же, как и на вашей машине — даже если остальная иерархия папок на Web-сервере совершенно не похожа на вашу. И напротив, если вы используете абсолютные адреса, Web-сервер должен иметь в точности ту же иерархию папок, что и ваша система, чтобы сервер смог находить файлы, указанные в гиперссылках на ваших Web-страницах.