Странный тег привязки / проблема относительного пути в Plone

Использование Plone 4.1.4.

Имейте контейнер с именем /employment, в котором по умолчанию отображается страница, также называемая трудоустройством.

В контейнере занятости есть дополнительная страница с именем foo

Когда я добавляю теги привязки (либо через TinyMCE, либо через прямой html), он «автоматически» ссылается на родительскую папку, а не на текущую страницу.

Я на http://www.example.com/employment/foo пытаюсь добавить ссылку <a href="#bar"> на страницу foo.

Я ожидаю, что ссылка будет http://www.example.com/employment/foo#bar при отображении, НО вместо этого она отображается как http://www.example.com/employment/#bar

Любая идея, почему по умолчанию используется родительская «папка», а не страница, на которой она сейчас находится? Это какая-то странная проблема с кэшированием или переписывание URL-адресов вуду?


person ErikP    schedule 11.04.2012    source источник
comment
Не уверен, что это имеет значение, но: В настройках tinyMCE-›тип ресурса я заметил, что список содержит привязки не включает страницы (я все еще изучаю терминологию plone - я предполагаю, что это тип контента) Мой список содержит привязки включает : Event News Item Document ATRelativePathCriterion   -  person ErikP    schedule 11.04.2012


Ответы (3)


В настройках TinyMCE включено «Связывание с использованием UID»? Связывание UID включает фильтр перезаписи URL-адресов, который преобразует все относительные ссылки в абсолютные. У Id были проблемы с относительными ссылками, но они должны быть исправлены в plone.outputfilters >= 1.2 (например, он больше не пытается «исправлять» якорные ссылки).

person Asko Soukka    schedule 11.04.2012
comment
Спасибо! У меня есть ссылка с использованием UID, включенных для TinyMCE. Если бы я снял этот параметр, это повлияло бы только на то, как будут создаваться будущие ссылки, верно? Я не хочу потерять все ссылки, ранее связанные с UID. Я также рассмотрю возможность обновления plone.outputfilters как можно скорее. - person ErikP; 11.04.2012
comment
FWIW: снятие флажка со ссылки с использованием UID, а затем редактирование страницы для добавления новой ссылки привязки не сработало / показало такое же поведение :( Я сообщу о выходном фильтре позже. - person ErikP; 11.04.2012
comment
Когда именно ссылка перестает работать? Он ломается в TinyMCE? (Повторный щелчок по HTML-источнику показывает, что он сразу не работает.) Или только когда Plone отрисовывает страницу? (Ссылка продолжает корректно отображаться на TinyMCE при повторном редактировании страницы, но становится неработающей при просмотре сохраненной страницы.) В первом случае проблема связана с TinyMCE, а во втором — либо с выходным фильтром, либо с базовым тегом. Если ссылка не работает уже в исходном коде отображаемой страницы, это может быть проблемой выходного фильтра. Если ссылка выглядит правильно в источнике, но не работает в браузере, это может быть проблема с базовым тегом. - person Asko Soukka; 11.04.2012
comment
Еще несколько вопросов :) Являются ли рассматриваемые типы контента (контейнер и страница) стандартными типами контента Plone или пользовательскими (Archetypes или Dexterity?). И удалось ли вам воспроизвести это с помощью ванильного Plone? (У меня не получилось воспроизвести это.) - person Asko Soukka; 11.04.2012
comment
Страница должна быть просто обычным архетипом plone. Ссылка прерывается после сохранения/публикации и последующего просмотра. HTML выглядит нормально, прежде чем я его сохраню - ломается при рендеринге. Я не пытался воспроизвести в vanilla plone... Я сообщу, когда окончательно узнаю, помогло ли обновление plone.outputfilter или если мы найдем другую основную причину, если другие наткнутся на эту проблему в будущем. (но в настоящее время нет новых новостей, чтобы сообщить) - person ErikP; 18.04.2012

Здесь вы можете стать жертвой базового тега. Базовый тег используется браузерами для определения точки отсчета для относительных ссылок. Если базовый тег говорит, что базовый URL-адрес является вашим контейнером, тогда относительные ссылки, которые вы создаете, в конечном итоге будут отображаться относительно этого.

Проверьте значение base в заголовке отображаемой страницы, чтобы убедиться, что это так.

person Cris Ewing    schedule 11.04.2012
comment
Во время моего исследования я заметил некоторые обсуждения этой проблемы в старой ветке списка рассылки: copilotco.com/mail-archives/plone-users.2007/msg00696.html Базовая ссылка выглядит правильно для меня в отрендеренном источнике (показывая текущую страницу, а не родительский каталог), хотя.. . - person ErikP; 11.04.2012

Это все еще было актуально для меня, работающего с типами содержимого ловкости в Plone 4.3.3.

Сначала якорные ссылки работали нормально, когда я создавал тип контента, не относящийся к папкам. Но поведение якорных ссылок изменилось после того, как я преобразовал их в тип папочного контейнера.

Увидев ответ Криса, я считаю, что базовый тег меняется в зависимости от типа контента, является ли он папочным или нет. Однако навигационные ссылки (например, в дереве навигации портлета) этого не делают. Это тормозит использование якорных ссылок.

Заявка была отправлена ​​по этому поводу, и решение, похоже, состоит в том, чтобы полностью удалить базовый тег в план 5.0.

Для плона 4.3.3. Я могу думать только об использовании абсолютных URL-адресов для ссылок привязки в шаблоне моего папочного типа контента.

<a tal:attributes="href string:${context/absolute_url}#anchor">My Anchor</a>
person jumois    schedule 07.08.2014