让我们说我们有一个带有以下代码片段的XPage,它使用javascript公式显示图像:
<xp:image id="image1"><xp:this.url><![CDATA[#{javascript:"actn005.gif"}]]></xp:this.url></xp:image>
actn005.gif作为图像资源存在于当前数据库中。当我点击“在Notes中预览”并获取源代码时,它会为Image显示以下内容:
<img id="view:_id1:image1" src="/xsp/Naveen/Experiments.nsf/xsp/actn005.gif" alt="" class="xspImage">
当我点击“在Web浏览器中预览”并获取源代码时,它会为图像显示以下内容:
<img id="view:_id1:image1" src="/Naveen/Experiments.nsf/actn005.gif" alt="" class="xspImage">
您可以看到,在“Notes中预览”的情况下,它会在数据库路径之前和之后添加 xsp 。我的问题是为什么?两种情况下都会显示图像,没有任何问题。但如果我有XPage渲染图像让我们调用它 - XPage_Rendering_Image.xsp。因为XPage代码
<xp:image id="image1"><xp:this.url><![CDATA[#{javascript:"XPage_Rendering_Image.xsp"}]]></xp:this.url></xp:image>
呈现为:
<img id="view:_id1:image1" src="/xsp/Naveen/Experiments.nsf/xsp/XPage_Rendering_Image.xsp" alt="" class="xspImage">
然后它就失败了!我之前在XPages论坛上发布了这个问题,建议使用像
这样的普通图片标签<img src="#{javascript:'XPage_Rendering_Image.xsp'}" alt="" class="xspImage" />.
但有没有办法使用<xp:image>
标记来完成这项工作?这是一个错误吗?
答案 0 :(得分:2)
它可能不会像您希望的那样(以及许多其他人),但它按设计工作。如果要提供自己的图像源(我假设XPage_Rendering_Image.xsp是XAgent),则必须使用Extension API并提供资源渲染器。或者您坚持使用论坛中建议的标准html img标记。 需要Notes客户端中的XSP路径部分,以便本地Web服务器可以识别它将由XSP引擎呈现,而不是经典客户端部分。
更新:/ xsp / .... URL也适用于网络。这就是你需要的。
答案 1 :(得分:1)
我希望将此视为错误并由IBM修复。我也遇到了这种差异,没有找到解决办法(基于客户端/浏览器的条件渲染不是一种选择)。
例如,“$ Icon”图像资源的本机链接也不起作用。