Обнаружилась грабля.
Допустим есть у меня документ, в тизире которого есть относительная ссылка.
Когда я открываю сам документ - проблем нет, ссылка ведёт куда надо.
А вот если тизер появляется в анонсе на главной странице или на странице taxonomy/term, то ссылка оказывается битой, ибо полный путь оказывается левым!
Что же делать в такой ситуации? Отказаться от использования относительных ссылок? Но ведь тогда при смене структуры сайта все пути слетят. Какие идеи?
Комментарии
Можно начинать относительные ссылки со слеша - тогда они будут от корня. То есть /node/25 - всегда будет от корня, независимо от текущего URL.
Можно настроить wysiwyg так, чтобы он вставлял абсолютные ссылки. В tinymce есть пара опций в конфиге.
Хм. Вряд ли один из этих вариантов подойдёт.
По поводу первого варианта, как показывает практика, а также в чём я глубоко убеждёт, ссылки вида node/XXXX - это зло! Каждая страница (ну может быть за исключением форума) должна иметь внятный чёткий URL.
По поводу второго варианта, при изменении структуры сайта (например при реорганизации подшивки) все абсолютные ссылки, начинающиеся от корня станут битыми (о чём я уже писал).
Таким образом, получается, что не надо использовать ссылки в тизере (что не слишком-то удобно, не так ли)?
Примеры - в студию.
Есть документ с URL:
/kaka/baka.html
На него есть абсолютная ссылка в документе: /intro.html
Завожу дополнительный разел и для реорганизации меняю:
/kaka/baka.html на /new/kaka/baka.html
в документе /intro.html будет битая ссылка.
Ах, ну да, это не реорганизация подшивки, сорри, да тут я с терминологией попутал, но в принципе пример помоему показательный, нет?
Во первых непонятно откуда .html, ну да ладно.
Используйте ссылки вида /node/123. Это внутренние ссылки друпал. Вы можете менять синоним на /kaka/baka.html или /new/kaka/baka.html, но ссылка на документ всегда будет /node/123.
Будет. Ровно до того момента, когда мне понадобится перенести часть документов на другой сервер.
А там нумерация node своя. Не говоря уже о том, что ссылка /node/123 мне ни о чем не расскажет, а вот, например, ссылка /configure.html расскажет.
Понятно в общем, решения нет - постараюсь не использовать ссылки в тизире.
Что значит "перенести на другой сервер"? Скопировать на другой сайт? Так там и имя сайта будет другое.
Тогда наоборот - используй алиасы. Но только учти, что они должны быть одинаковыми везде. Например на каждом сайте есть урл site.ru/about - неважно какое у него внутренне представление, ссылка одна.
Это понятно. Обычно бывает необходимость переносить не уникальную для сайта информацию типа about, а какие-либо доки, которые могут быть использованы и там и там.