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


Автор: Alone 3.5.2006, 16:14
Доброго дня всем.
Как то ни с того ни с сего озадачился - а как же таки правильнее/лучше писать урлы в страничке?
вариант1 a href="http://root.site.url/dir/file?params"
вариант2 a href="?params"
ессесно, при условии что зашли на страничку по адресу "http://root.site.url/dir/file"

собсно сабж... 

Автор: Mal Hack 3.5.2006, 16:35
Как хочешь так и пиши.
Я использую <base>. 

Автор: Alone 3.5.2006, 16:37
э... недопонял, что, прости юзаешь? smile
<base> (что это) 

Автор: Mal Hack 3.5.2006, 16:54
Alone, это тэг в HTML такой. 

Автор: Alone 3.5.2006, 17:02
Гм... как же это моя совесть жила без него!... smile

Добавлено @ 17:08 
хотя, уже вижу, особой радости я от него не испытаю...

К примеру IMHO будет проблематично сгенерить урл, если базовый урл скажем "http://site/dir1/dir2", а ссылка должна смотреть в одном случае на "http://site/dir3" а в другом случае на "http://site/dir1/dir3"

тут мне кажется лучче таки плясать от корня сайта... 

Автор: Дрон 3.5.2006, 17:27
Я пишу относительные -- так как чаще всего веб-приложение должно работать по разным адресам (локально, на тестовом сервере, на рабочем сервере), а перелопачивать страницы вручную или делать все ссылки динамическими смысла не вижу. 

Автор: Mal Hack 3.5.2006, 17:30
В <base> прописывается как минимум домен, как максимум папка за пределы который ты заведомо не вылезешь. В этом и суть, ты относительно нее уже и пляшешь. Зато при сохранении страницы глюков не будет.

А этот УРЛД можно и в конфиге один раз задать. 

Автор: Alone 3.5.2006, 17:46
Mal Hack
Ты шаблонизатором пользуешься? 

Я оказывается невольно использую аналог <base> smile
делая на смарти такое:
a href="{$ROOT}/dir1/dir2/file?params"


Дрон
Я тоже так пишу, и у себя на локальном сервере с выделенным вирт.хостом и прописанным к нему в /etc/hosts доменом все бы работало на ура. НО! Это приходится показывать заказчику. И зачастую еще до выкладывания на живой хост. Так вот слегка бесило, что DOCUMENT_ROOT смотрит куда ему сказали, и ни на шаг дальше/ближе.

В результате получаем:
имеем девелоперский хост http://dev_host (DOCUMENT_ROOT смотрит к примеру в /home/user/web)
а показать надо работу проекта, который находится в /home/user/web/test/site222
в этом случае относительные ссылки укажут не на http://dev_host/test/site222 а на http://dev_host/

Поэтому намного выгоднее один раз ассигнить переменную в шаблон, которая и будет указывать на корень сайта. А все остальные ссылки будут строится "сплит"аясь с ней. IMHO


Mal Hack пасибки, что ткнул носом smile а то как то в погоне за бОльшим - пропускается малое но важное smile
<base> таки правильнее по всем канонам. 

Автор: Mal Hack 3.5.2006, 20:06
Цитата(Alone @  3.5.2006,  17:46 Найти цитируемый пост)
Я оказывается невольно использую аналог <base> smile
делая на смарти такое:
a href="{$ROOT}/dir1/dir2/file?params"

Ага.

Цитата(Alone @  3.5.2006,  17:46 Найти цитируемый пост)
Ты шаблонизатором пользуешься? 

Ага, только самописным. 

Автор: R.M. 4.5.2006, 10:34
Alone, 
Цитата(Alone @  3.5.2006,  18:46 Найти цитируемый пост)
a href="{$ROOT}/dir1/dir2/file?params"

Тогда лучше так
Код

a href="".$ROOT."/dir1/dir2/file?params"

Быстрее парсится smile  

Автор: Alone 4.5.2006, 12:44
Кхм... эта строка вообще то из SMARTY smile 

Автор: R.M. 4.5.2006, 13:17
Alone, и что? smile в IPB тоже везде так пишут. Это ещё от обстаятельств зависит smile если это дело в <<<EOF EOF; то только так как ты показал. 

Автор: Alone 4.5.2006, 16:45
да нет, ничего... Просто я конкретно указал к чему относится данная строка 
Цитата
Я оказывается невольно использую аналог <base> smile
делая на смарти такое:
a href="{$ROOT}/dir1/dir2/file?params"


поэтому это таки твоя невнимательность smile 

Автор: Mal Hack 4.5.2006, 18:47
Цитата(Куксикус @  4.5.2006,  10:34 Найти цитируемый пост)
Тогда лучше так

Для полной оптимальности "". впереди убрать еще желательно smile 

Автор: R.M. 5.5.2006, 11:58
Alone, да суть не в этом я тоже обычно ставлю переменную в конфиге.

Mal Hack, т.е.
Код
a href=$ROOT/dir1/dir2/file?params

? smile
а вдруг в ссылке какая бяка появится лучше наверно хотябы так
Код
a href='$ROOT/dir1/dir2/file?params'
 

Автор: Mal Hack 5.5.2006, 12:06
Куксикус, нет, так:
Код

a href=$ROOT."/dir1/dir2/file?params"
 

Автор: R.M. 5.5.2006, 14:22
Код
echo "<a href=\"$ROOT."/dir1/dir2/file?params\">link</a>";

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING

Код
echo "<a href=\"".$ROOT."/dir1/dir2/file?params\">link</a>";

 smile

Добавлено @ 14:22 
или я тебя не так понял? но вроде всё как ты сказал 

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