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