Журнал Начинающего ВебМастера 55, 2011-04-23 11:18
Здравствуйте,
Как добавить картинку на веб-страницу?
Для добавления изображения в документ применяется тег <img>, его атрибут src определяет путь к графическому файлу, который должен быть в формате GIF, PNG или JPEG. Также для тега <img> необходимо указать обязательный атрибут alt, он описывает альтернативный текст, видимый при загрузке изображения или отключении картинок в браузере.
В HTML
<img src="путь к файлу" alt="альтернативный текст">
В XHTML
<img src="путь к файлу" alt="альтернативный текст" />
Если графический файл находится в одной папке с HTML-документом, то в качестве пути достаточно указать только имя файла
Учтите, что когда на странице применяется строгий <!DOCTYPE>, тег <img> допустимо размещать только внутри блочных элементов вроде <p> или <div>.
Почему изображение не показывается на сайте?
При тестировании веб-страницы на локальном компьютере все изображения обычно показываются корректно, однако после публикации на сайте возникает ситуация, что рисунки не видны. Это может происходить по ряду причин, рассмотренных далее.
Несовпадение регистра
В большинстве случаев в качестве операционной системы веб-сервера выступают Unix-подобные системы, которые различают регистр файла. Иными словами, файлы с именами PIC.gif, pic.gif и Pic.gif являются разными. При обращении из HTML-кода эту особенность необходимо учитывать и писать адрес изображения следует именно так, как он записан в системе. Чтобы не возникало путаницы, обычно договариваются, что все имена файлов и папок пишутся в нижнем регистре, также хранятся и документы.
Неверный адрес файла
Ошибка доступа к файлу часто возникает при неверной записи имени файла или папки где он хранится, т.е. из-за обычной опечатки. Также это происходит при неправильном указании относительного адреса файла вида ../../images/file.gif.
Использование локального адреса
Некоторые программы для редактирования HTML-кода добавляют изображения в виде локального адреса, начинающегося на ключевое слово file:///. Далее следует путь к файлу в виде строки c:/имя папки/имя файла. Изображение при этом исправно показывается на локальном компьютере, а на сервере нет, поскольку на нем заданного пути. В подобных случаях достаточно заменить локальный адрес к файлу на относительный.
Проверка изображений
Проверка отображения рисунка может происходить тремя путями: корректность графического файла, правильность HTML-кода и ревизия со стороны сервера.
Проверка графического файла заключается в определении его целостности — файл не должен быть поврежден и обязан без проблем отображаться в браузере. Для этого в браузере достаточно ввести полный локальный путь к файлу, например file:///с:/www/girl.jpg.
HTML-код должен содержать правильный адрес графического файла с учетом регистра. Как указывалось выше, желательно имена всех файлов писать строчными символами. Так, следующее написание может привести к тому, что файл перестанет отображаться.
<img src="../images/Girl.Jpg" alt="Фотография">
Если файл записан на сервере как girl.jpg, то обращение к нему в примере некорректно.
При добавлении картинок с помощью программ для редактирования HTML-документа, программы нередко указывают локальный путь к графическому файлу, который начинается с ключевого слова file:///. Например, рисунок находится по адресу c:\www\images\sample.gif, тогда путь к нему будет записываться как file:///c:/www/images/sample.gif. Браузер при открытии документа просматривает путь и ищет по указанному адресу изображение. Естественно, на соседнем компьютере указанной папки, скорее всего, нет, как нет и запрашиваемого
файла, поэтому рисунок не отображается.
В примере 1показано использование локального адреса, который приводит к тому, что на других компьютерах, а также после публикации на сайте, изображение становится недоступно.
Пример 1: Изображение, которое видно только на моем компьютере
Чтобы устранить указанный недостаток, необходимо искоренять локальные адреса и заменять их относительными. Тогда значение параметра src в примере 1 заменится на images/screenshot.png. В примере 2 показаны варианты указания адресов изображений на странице.
Пример 2. Адреса изображений
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Пути</title>
</head>
<body>
<p><img src="images/1.png" alt="Путь к файлу 1.png, расположенному в папке images"
width="150" height="90" /></p>
<p><img src="/images/2.png" alt="Папка images лежит в корне сайта"
width="150" height="90" /></p>
<p><img src="../images/3.png" alt="Перейти на уровень выше в иерархии папок и
открыть файл 3.png, расположенный в папке images" width="150" height="90" /></p>
</body>
</html>
Установил путь к рисунку как /images/pic.gif, но рисунок не отображается на веб-странице. Почему?
Слэш (символ /) перед именем файла или папки обозначает, что отсчет ведется от корня сайта. Соответственно, путь /images/pic.gif следует понимать так. В корне сайта находится папка с именем images, а в ней располагается файл pic.gif. Данный способ записи работает под управлением веб-сервера, поэтому на локальном компьютере браузер интерпретирует путь как c:/images/pic.gif, а такой папки и файла, вероятнее всего, нет.
Пример: Путь к файлу относительно корня сайта
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Путь к файлу</title>
</head>
<body>
<p><img src="/pic/sample.gif" alt="Пример" width="150" height="90" /></p>
</body>
</html>
Если документ делается исключительно для локального использования, то пути к изображениям следует указывать относительно текущей веб-страницы. Для документов с последующей публикацией на веб-сервере пути относительно корня очень удобны. Они имеют компактную форму, а при переносе файла из одной папки в другую продолжают действовать.