Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Вёрстка веб-сайтов > Относительные ссылки


Автор: nerezus 24.9.2009, 00:43
Имеем страницу: http://www.greenmama.ru/nid/424940/
Смотримм на фото пацана: 
<img border="0" alt="детское воровство" vspace="10" hspace="10" src="images/2009-09/16/1253084202-shutterstock_43072.jpg" align="left">

Следовательно картинка находится тут: http://www.greenmama.ru/nid/424940/images/2009-09/16/1253084202-shutterstock_43072.jpg
Получаем 404.

А теперь подставляем ее от корня: http://www.greenmama.ru/images/2009-09/16/1253084202-shutterstock_43072.jpg
Работает.

Вопрос: почему? Это же относительная ссылка. Относительно текущего месторасположения.

Автор: FortMax 24.9.2009, 01:14
Цитата(nerezus @  24.9.2009,  00:43 Найти цитируемый пост)
Следовательно картинка находится тут: http://www.greenmama.ru/nid/424940/images/...stock_43072.jpg

это ещё не факт, а как на счет элемента BASE ?

Цитата

12.4 Информация о пути: элемент BASE
<!ELEMENT BASE - O EMPTY               -- базовый URI документа -->
<!ATTLIST BASE
  href        %URI;          #REQUIRED -- URI, служащий базовым --
  >

Начальный тэг: обязателен, Конечный тэг: запрещен

Определения атрибутов
href = uri [CT] 
Этот атрибут задает абсолютный URI, служащий базовым URI для разрешения относительных URI.

Атрибуты, определяемые в другом месте
target (информация о целевом кадре) 

В HTML ссылки на внешние изображения, апплеты, программы для обработки форм, таблицы стилей и т.д. всегда задаются с помощью URI. Относительные URI разрешаются в соответствии с базовым URI, который может определяться из различных источников. Элемент BASE позволяет авторам явно указать базовый URI документа. 

Если элемент BASE указан, он должен присутствовать в разделе HEAD документа HTML, до элементов, ссылающихся на внешние ресурсы. Информация о пути, указанная в элементе BASE, влияет только на URI в документе, в котором присутствует этот элемент.

Например, даны следующее объявление BASE и объявление A:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
   "http://www.w3.org/TR/REC-html40/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Наши продукты</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Вы видели наши <A href="../cages/birds.gif">клетки для птиц</A>?
 </BODY>
</HTML>

относительный URI "../cages/birds.gif" будет разрешен в:
http://www.aviary.com/cages/birds.gif

Автор: nerezus 24.9.2009, 02:00
Цитата

это ещё не факт, а как на счет элемента BASE ?
 Черт. А я его искал, но не нашел(думал что это параметр для meta)

А все оказалось просто: <base href="http://www.greenmama.ru/"/>
Спасибо.

Автор: Crypton 24.9.2009, 16:31
А почему-бы не сделать все относительные ссылки прямыми? т-е "/images/../../../1.jpg"

Автор: nerezus 24.9.2009, 16:47
Crypton, это не мой проект. Просто меня заинтересовало данное несоответствие.

Автор: Crypton 24.9.2009, 17:14
Понятно. Просто в моем прошлом base не устроил своей прямолинейностью. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)