在老格式的链接,用户打开的文档http://server/db.nsf/VIEW_UNID/DOC_UNID
。 窗体有属性设置为打开的XPage代替。
这些链接的由来是“通用代理”生成的电子邮件通知。 它只是发送链接文件。 它不知道,什么样的形式是什么的XPage,因此它产生普遍的链接,而不是“/page.xsp&documentId = ...”相关联。
问题 :在客户端计算的相对链接不工作- < a href = "/page.xsp?params">
应该是更有效的-没有往返和容易计算在页面加载。 他们评估为http://server/db.nsf/0/page.xsp?params
,有什么用错误404结束,天然化。
XPage中含有“帮助”部分,有什么用RT场含文字,图片和链接其他文档。 并且在RT领域的工作相对链接时的XPage从另一个的XPage打开 - 视图(/page.xsp),但是从通知链路重定向失败时(/ 0 / UNID)。
问 :如何浏览器的地址栏有效地恢复到扩展的XPages格式http://server/db.nsf/page.xsp?documentId=DOC_UNID
通过老式的URL重定向打开文档/视图后?
主要的问题是在服务器侧(SSJS评价)和客户端(浏览器通过评价)相链接的差异。 我已经简单的重定向解决我的问题的情况下文档中是老式的链接打开。
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:eventHandler event="onClientLoad" submit="false">
<xp:this.script><![CDATA[var url = "#{javascript:context.getUrl()}";
var l = window.location;
if (url != l) {
window.location.replace(url);
}
]]></xp:this.script>
</xp:eventHandler>
</xp:view>
简单地说,如果打开URL从内部URL不同(由XSP引擎解决),浏览器重定向到正确的URL。 这解决了我们与内嵌图像(图像资源)和附件的许多问题。
尝试“./page.xsp¶ms”或../如果你想回去的根源 - 我注意到IBM这样做是他们的编码也是如此。 希望这可以帮助。
您是否尝试设置pageBaseUrl财产在你的XPages? 这将有助于修复relativ链接:
<xp:this.pageBaseUrl>
<xp:baseUrl>
<xp:this.href><![CDATA[#{javascript:"http://stackoverflow.com/"}]]></xp:this.href>
</xp:baseUrl>
</xp:this.pageBaseUrl>
另一个想法是做beforePageLoad -event重定向中的XPage如果URL是老式的风格。