4

我在侧边栏中有一个到 sectionA/pageA 的内部链接,当我从 sectionB 中单击它时,url 变为 sectionB/sectionA/post。我不能使用绝对 URL,因为侧边栏位于 XDV 静态文件中并且我使用 linguaplone。如何创建唯一的网址?

4

1 回答 1

3

您看到的内容是相对 URL(不是以/包括协议和主机名的完整 URL 开头)和获取的组合。后者的意思是sectionA遍历之后仍然可以到达sectionB。您必须在边栏中使用绝对 URL。

如果您使用模板方法生成侧边栏(ZPT 页面模板、XDV、Diazo 等),您必须确保生成绝对 URL,方法是直接查询 pageA 的绝对 URL 或其任何祖先,然后添加从那里到 URL。以下是三个可以实现这一目标的 TAL 片段:

 <!-- query pageA directly -->
 <a href="sectionA/pageA" tal:attributes="href sectionA/pageA/absolute_url"/> 

 <!-- start at sectionA and add to the URL from there -->
 <a href="sectionA/pageA" tal:attributes="href string:$(sectionA/absolute_url}/pageA"/> 

 <!-- assuming sectionA is in the site root, use that as the start -->
 <a href="sectionA/pageA" tal:attributes="href string:$portal_url/sectionA/pageA"/>

如果您使用外部模板系统(例如 XDV),则适用相同的原则,但您将无法直接查询 sectionA 或 pageA 的绝对 URL,但您将有绝对 URL 来重构可用的 URL,例如在portal_url最后一个例子中。

于 2011-04-21T11:11:11.153 回答