2012-04-11 77 views
1

使用Plone 4.1.4。Plone中的奇怪定位标记/相对路径问题

有一个名为/ employment的容器,它有一个页面的默认视图,也称为就业。

有就业容器中的其他页面,叫做foo

当我添加锚标记(通过TinyMCE的或直HTML)为“自动地”链接到父文件夹,而不是当前页面。

我在http://www.example.com/employment/foo 我尝试在foo页面上添加一个链接<a href="#bar">

我期望呈现 当链路是http://www.example.com/employment/foo#bar而是它显示为http://www.example.com/employment/#bar

任何想法,为什么它的实际上目前对拖欠父“文件夹”,而不是页面?它是一些奇怪的缓存问题或URL重写伏都教?

+0

不知道这是否是相关的,但是:在TinyMCE的设置 - >资源类型,我注意到“包含锚”列表中不包括“网页”(我还在学习Plone的术语 - 我认为这是一个内容类型)我的“包含锚”的列表包括: '事件 新闻项目 文件 ATRelativePathCriterion' – ErikP 2012-04-11 18:22:31

回答

0

您是否在TinyMCE的设置中启用了“使用UID进行链接”? UID链接启用URL重写过滤器,该过滤器可将所有相对链接解析为绝对链接。 Id有相关链接的问题,但这些应该在plone.outputfilters> = 1.2中修复(例如,它不会再试图“修复”锚链接)。

+0

谢谢!我确实为TinyMCE启用了“使用UID进行链接”。如果我要取消选中该设置,是否仅影响未来链接的创建方式,请更正?我不想孤儿所有以前的UID链接的链接。我也会看看更新plone。outputfilters ASAP。 – ErikP 2012-04-11 16:39:45

+0

FWIW:使用UID取消选中链接,然后编辑页面以添加新的锚链接不起作用/表现出相同的行为:(我稍后会在输出过滤器上进行回报。 – ErikP 2012-04-11 16:59:33

+0

链接何时断开?它会在TinyMCE中中断吗?(单击HTML源代码会再次显示它立即被破坏。)或者仅当Plone呈现页面时?(当再次编辑页面时,链接会继续在TinyMCE上正确显示,但当保存的页面)前者是TinyMCE问题,后者可能是outputfilter或base-tag问题,如果链接已经在渲染页面的源代码中被破解,那么可能是输出过滤器问题,如果链接看起来正确源,而是由浏览器坏了,也可能是基地标签的问题。 – 2012-04-11 19:06:16

0

您可能在这里成为基础标签的受害者。浏览器使用基本标记来确定相对链接的参考点。如果基本标签指出基础URL是您的容器,那么您创建的相关链接最终将相对于该链接进行渲染。

检查渲染页面头部的基值,看看是否属于这种情况。

+0

在我的研究,我也看到一些关于这个“问题”喋喋不休在一个旧的邮件列表线程: http://copilotco.com/mail-archives/plone-users.2007/ msg00696.html 基础链接在渲染源(显示当前页面,而不是父目录)中对我来说看起来是正确的,尽管... – ErikP 2012-04-11 16:43:06

0

对于我在Plone 4.3.3中使用敏捷内容类型,这仍然是一个相关问题。

首先,当我创建非文件夹内容类型时,锚链接正常工作。但是,在我将其转换为文件夹容器类型后,锚链接行为发生了变化。

在看到Cris的回答后,我相信基本标签会根据内容的类型发生变化,如果它是不灵敏的。然而,导航链接(例如,在Portlet导航树中)却没有。这会制止锚链接的使用。

A ticket已被提交关于此,并且该解决方案似乎是完全删除基本标记在plone 5.0中。

对于plone 4.3.3。我只能想到在我的文件夹内容类型的模板中使用绝对路径作为锚链接。

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