我在侧边栏中有一个指向sectionA/pageA的内部链接,当我在sectionB中点击它时,url变成了sectionB/sectionA/post。我不能使用绝对URL,因为侧边栏是在XDV静态文件中,而我使用的是linguaplone。如何创建唯一的url?
发布于 2011-04-21 19:11:11
您看到的是相对网址(不是以/或完整网址开头,包括协议和主机名)和获取的组合。后者意味着在遍历sectionB之后仍然可以到达sectionA。您必须在侧边栏中使用绝对URL。
如果您使用模板方法来生成侧边栏( ZPT页面模板、XDV、Diazo等)您必须确保生成一个绝对URL,方法是直接在pageA中查询它的绝对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一样。
https://stackoverflow.com/questions/5742327
复制相似问题