Plone 中奇怪的锚标签/相对路径问题



使用 Plone 4.1.4.

有一个名为/employment 的容器,该容器具有也称为 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 重写伏都教?

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

您可能在这里成为基本标签的受害者。浏览器使用基本标记来确定相对链接的参考点。如果基本标记显示基本网址是您的容器,那么您创建的相对链接最终将相对于该容器呈现。

检查呈现页面头部的 base 值,看看是否是这种情况。

对于我在 Plone 4.3.3 中使用灵巧内容类型来说,这仍然是相关的问题。

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

在看到 Cris(克里斯)的答案后,我相信基本标签会根据内容类型而变化,无论它是否是文件夹。然而,导航链接(例如,在 Portlet 导航树中)没有。这会阻止锚链接的使用。

已经提交了关于此的票证,解决方案似乎是在 plone 5.0 中完全删除基本标签。

对于 plone 4.3.3。我只能考虑对文件夹内容类型模板中的锚链接使用绝对 URL。

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

最新更新