2011-04-21 44 views
4

我有一個內部鏈接到sectionA/pageA在側欄中,當我從sectionB中點擊它時,url變成sectionB/sectionA/post。我無法使用絕對URL,因爲邊欄位於XDV靜態文件中,而我使用了linguaplone。 如何創建唯一的網址?plone中的唯一URL

回答

3

您看到相對URL(不是以/開頭或包含協議和主機名稱的完整URL)和採集的組合。後者意味着在遍歷sectionB後仍可以達到sectionA。您必須在側邊欄中使用絕對網址。

如果您使用模板方法生成側邊欄(ZPT頁面模板,XDV,重氮等),您必須確保通過直接查詢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,同樣的原則也適用,但你不能夠直接查詢要麼部1.或pageA的他們絕對網址,但您將擁有絕對網址來重建可用的網址,例如上一個示例中的portal_url

+0

好的很好,但...我已經安裝了linguaplone和絕對url我不保留正確的語言。 – martino 2011-04-21 12:01:57

+0

@martino:「pageA」是語言相關的模板嗎?有一個I18N_LANGUAGE cookie,可以讓你在URL中插入語言(http:// site/en/sectionA/pageA),這會爲你解決嗎? – 2011-04-21 12:39:34

+0

好吧,但如果我有靜態的XDV HTML我不能使用cookie。我認爲唯一的方法是將這個靜態內容放在一個靜態portlet中,對嗎? – martino 2011-04-21 15:24:48