_Sash@ Posted August 9, 2005 Report Share Posted August 9, 2005 Что на сайте лучше использовать: абсолютные или относительные ссылки? С какими меньше проблем, или нет разницы. Quote Link to comment Share on other sites More sharing options...
Gray Angel Posted August 9, 2005 Report Share Posted August 9, 2005 Впринципе разницы абсолютно нет. Но если ты к примеру пишешь сайт на ПХП, и держишь меню в отдельном файле, на который потом делаешь инклуд, то в этом файле лучше использовать абсолютные линки Quote Link to comment Share on other sites More sharing options...
Сергей Плоткин Posted August 9, 2005 Report Share Posted August 9, 2005 _Sash@: Относительные. При смене домена или переносе на другой уровень домена на сайте это не скажется. Gray Angel: Если у тебя оптическая мышь, то лучше пользоваться Internet Explorer'ом, если с шариком - то Firefox'ом. Думаю, у многих возник вопрос "почему"? Вот и у меня, глядя на твой комментарий, возник тот же вопрос. Можешь разъяснить свое высказывание? Quote Link to comment Share on other sites More sharing options...
Shurr Posted August 9, 2005 Report Share Posted August 9, 2005 Cсылки абсолютные, но ведущие отсчет от корня сайта, например "/news/current.html", действительно лучше использовать в случае применения инклудов. Поясню на примере. Допустим есть корневой файл index.jsp (каждый пишет на чем может ;) ) и файлы разделов, находящиеся в папках, например "/news/index.jsp". Так вот, если инклудить меню, (или любой другой элемент страницы со ссылками), то относительная ссылка, например "current.jsp" в первом случае она приведет к файлу "/current.jsp", а во втором - "/news/current.jsp". Поэтому подобные ссылки лучше писать от корня сайта. Относительные ссылки можно использовать в статических сайтах, или там, где отсутствуют инклуды, либо же присутствуют инклуды, но структура файлов однородна, и позволяет использовать подобные ссылки (например, все файлы, инклудящие элемент страницы, находятся в одной папке, и др.) Ссылки же, являющиеся абсолютными с полным указанием пути, типа "http://mysuperrulezzsite.com.ru/news/current.html" следует давать только на чужие сайты. Использование таких ссылок для внутренней навигации по сайту считается дурным тоном и влечет за собой многочисленные проблемы, начиная от сложностей при локальной отладке, и заканчивая необходимостью массового редактирования ссылок при смене адреса сайта. P.S. И только Microsoft Word, плюя на все правила хорошего тона, задает ссылки на файлы в виде "C:/work/index.html" ... Quote Link to comment Share on other sites More sharing options...
_Sash@ Posted August 10, 2005 Author Report Share Posted August 10, 2005 Вообще я зачем это спросил? Пользуюсь движком Mambo Open Source (если кто слышал) и там когда хочу че-нибудь ручками "дописать" надо писать ссылочку. В ней (mambo) многие ссылочки прописываются как к примеру: <img src="<?php echo "$GLOBALS[mosConfig_live_site]/templates/$GLOBALS[cur_template]/images/"... ?> Ссылки же, являющиеся абсолютными с полным указанием пути... ...использование таких ссылок для внутренней навигации по сайту считается дурным тоном и влечет за собой многочисленные проблемы, начиная от сложностей при локальной отладке, и заканчивая необходимостью массового редактирования ссылок при смене адреса сайта. То здесь, по ходу, проблем не возникнет сильных, как я понимаю в переменную $GLOBALS[mosConfig_live_site] сохраняется текущий URL, иакой бы адрес у сайта не был, будет работать. Может я ошибаюсь, поправьте, если че :). Зелен я еще в этом. Quote Link to comment Share on other sites More sharing options...
Сергей Плоткин Posted August 11, 2005 Report Share Posted August 11, 2005 Shurr: Вот, путаница в понятиях к чему приводит. :( Я всегда считал, что ссылка "/news/current.html" самая что ни на есть относительная, т.к. она представлена относительно корня сайта. Quote Link to comment Share on other sites More sharing options...
Shurr Posted August 11, 2005 Report Share Posted August 11, 2005 _Sash@ То здесь, по ходу, проблем не возникнет сильных, как я понимаю в переменную $GLOBALS[mosConfig_live_site] сохраняется текущий URL, иакой бы адрес у сайта не был, будет работать. Если адрес сайта формируется динамически - то можно и так и так делать, на твой выбор. Quote Link to comment Share on other sites More sharing options...
_Sash@ Posted August 11, 2005 Author Report Share Posted August 11, 2005 Shurr:Вот, путаница в понятиях к чему приводит. :) Я всегда считал, что ссылка "/news/current.html" самая что ни на есть относительная, т.к. она представлена относительно корня сайта. Насколько я помню основы ПК – абсолютный путь к файлу записывается так: D:/Web/Pictures/image.gif Он задан абсолютно, т.е. неизменно из любах точек, машина сразу найдет диск D, потом пойдет в папку Web и т.д. А относительный путь (относительно текущего расположения файла) указывается: ../ Pictures/image.gif – т.е мы вышли из исходной папки и оказались рядом с папкой Pictures, которая находится вместе с исходной папкой в одном каталоге, ну за тем туда и… Или так /ляляля/блабла/image.gif – (относительно настоящего положения файла) в то-же каталоге, где лежит файл с прогой создана папка ляляля, заходим туда и… Мне кажется что так объясняются относительные и абсолютные ссылки. А то что-то сомнение закралось.:) Quote Link to comment Share on other sites More sharing options...
Shurr Posted August 11, 2005 Report Share Posted August 11, 2005 Насколько я помню основы ПК – абсолютный путь к файлу записывается так:D:/Web/Pictures/image.gif Он задан абсолютно, т.е. неизменно из любах точек, машина сразу найдет диск D, потом пойдет в папку Web и т.д. А относительный путь (относительно текущего расположения файла) указывается: ../ Pictures/image.gif – т.е мы вышли из исходной папки и оказались рядом с папкой Pictures, которая находится вместе с исходной папкой в одном каталоге, ну за тем туда и… Или так /ляляля/блабла/image.gif – (относительно настоящего положения файла) в то-же каталоге, где лежит файл с прогой создана папка ляляля, заходим туда и… Мне кажется что так объясняются относительные и абсолютные ссылки. А то что-то сомнение закралось. Вот здесь как раз и возникает путаница. Это правила адресации для файлов в системе. Но они не работают в html. Дело в том, что в html запись /ляляля/блабла/image.gif обозначает адресацию не от текущей папки, а от корня. На вебе - от корня сайта. Т.е. независимо от того, в какой папке находится текущая страница, такая ссылка приведет к адресу адрес_сайта.домен/ляляля/блабла/image.gif . Кстати, в Windows (локально) такая ссылка в html не будет работать вообще. Windows просто не найдет папки в корне, без указания диска. Если же нужна относительная адресация - то надо писать без первого слеша, например, ляляля/блабла/image.gif, или, если необходимо перейти выше по дереву папок, то начиная с "..", например ../ляляля/блабла/image.gif Quote Link to comment Share on other sites More sharing options...
_Sash@ Posted August 11, 2005 Author Report Share Posted August 11, 2005 Shurr, значит мне не надо морочить голову с ссылками типа <img src="<?php echo "$GLOBALS[mosConfig_live_site]/templates/$GLOBALS[cur_template]/images/"... ?> А просто ссылаться на нужную мне папку (создам отдельно в корне images), как /images/111.gif То ЕСТЬ независимо от имени_сайта.домен, я из любой точку попаду в нужную мне директорию и найду документ? Quote Link to comment Share on other sites More sharing options...
Dimon#ic Posted August 11, 2005 Report Share Posted August 11, 2005 Да это так Также например если тебе надо спуститься на папку две три и т.д ниже нужно в самом начале пути прописывать ../ каждый знак ../ означает спуститься на директорию ниже это удобно применять если на твоём сайте сложная структура и например какой-то скрипт хочет сделать инклюд другого скрипта который лежит на четыре директории ниже потом на две директории вверх и т.д тоесть такой метод лучше применять для сайтов с древовидной структорой. И такой подход экономит много времени и места Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.