Относительные ссылки в таксономии и анонсе

Главные вкладки

Аватар пользователя Azerot Azerot 5 марта 2009 в 22:53

Обнаружилась грабля.
Допустим есть у меня документ, в тизире которого есть относительная ссылка.
Когда я открываю сам документ - проблем нет, ссылка ведёт куда надо.
А вот если тизер появляется в анонсе на главной странице или на странице taxonomy/term, то ссылка оказывается битой, ибо полный путь оказывается левым!
Что же делать в такой ситуации? Отказаться от использования относительных ссылок? Но ведь тогда при смене структуры сайта все пути слетят. Какие идеи?

Комментарии

Аватар пользователя ankheg ankheg 6 марта 2009 в 0:03

Можно начинать относительные ссылки со слеша - тогда они будут от корня. То есть /node/25 - всегда будет от корня, независимо от текущего URL.

Можно настроить wysiwyg так, чтобы он вставлял абсолютные ссылки. В tinymce есть пара опций в конфиге.

Аватар пользователя Azerot Azerot 6 марта 2009 в 8:21

Хм. Вряд ли один из этих вариантов подойдёт.
По поводу первого варианта, как показывает практика, а также в чём я глубоко убеждёт, ссылки вида node/XXXX - это зло! Каждая страница (ну может быть за исключением форума) должна иметь внятный чёткий URL.

По поводу второго варианта, при изменении структуры сайта (например при реорганизации подшивки) все абсолютные ссылки, начинающиеся от корня станут битыми (о чём я уже писал).

Таким образом, получается, что не надо использовать ссылки в тизере (что не слишком-то удобно, не так ли)?

Аватар пользователя Dan Dan 6 марта 2009 в 11:23

"Azerot" wrote:
По поводу второго варианта, при изменении структуры сайта (например при реорганизации подшивки) все абсолютные ссылки, начинающиеся от корня станут битыми (о чём я уже писал).

Примеры - в студию.

Аватар пользователя Azerot Azerot 6 марта 2009 в 11:32

Есть документ с URL:
/kaka/baka.html
На него есть абсолютная ссылка в документе: /intro.html
Завожу дополнительный разел и для реорганизации меняю:
/kaka/baka.html на /new/kaka/baka.html
в документе /intro.html будет битая ссылка.

Ах, ну да, это не реорганизация подшивки, сорри, да тут я с терминологией попутал, но в принципе пример помоему показательный, нет?

Аватар пользователя Dan Dan 6 марта 2009 в 11:48

Во первых непонятно откуда .html, ну да ладно.

Используйте ссылки вида /node/123. Это внутренние ссылки друпал. Вы можете менять синоним на /kaka/baka.html или /new/kaka/baka.html, но ссылка на документ всегда будет /node/123.

Аватар пользователя Azerot Azerot 6 марта 2009 в 12:01

Будет. Ровно до того момента, когда мне понадобится перенести часть документов на другой сервер.
А там нумерация node своя. Не говоря уже о том, что ссылка /node/123 мне ни о чем не расскажет, а вот, например, ссылка /configure.html расскажет.

Понятно в общем, решения нет - постараюсь не использовать ссылки в тизире.

Аватар пользователя Dan Dan 6 марта 2009 в 17:37

Что значит "перенести на другой сервер"? Скопировать на другой сайт? Так там и имя сайта будет другое.

Тогда наоборот - используй алиасы. Но только учти, что они должны быть одинаковыми везде. Например на каждом сайте есть урл site.ru/about - неважно какое у него внутренне представление, ссылка одна.

Аватар пользователя Azerot Azerot 9 марта 2009 в 0:23

Это понятно. Обычно бывает необходимость переносить не уникальную для сайта информацию типа about, а какие-либо доки, которые могут быть использованы и там и там.