getMedia在umbraco中返回空字符串

时间:2013-06-19 18:07:25

标签: asp.net xslt content-management-system umbraco

我正在umbraco建立一个网站。在这我是渲染图像using umbraco.library.getMedia方法。在这里,我面临着umbraco的一种非常奇怪的行为。有时图像会被渲染,有时图像不会渲染。我已经分析了xslt,我发现getMedia(nodeid,0)/umbracoFile在我得到空图像src时没有返回任何东西。如果我发布任何节点或在umbraco的某个地方工作然后发布网站,那么我可能会发现渲染图像。这意味着图像随机出现并消失。 这完全让我感到困惑,故障在哪里。请帮帮我。

我发布用于渲染图片的代码

<xsl:variable name="img1" select="umbraco.library:GetMedia($slideImg,'false')/umbracoFile" />
<xsl:variable name="img2" select="umbraco.library:GetMedia($slideImg,0)/umbracoFile" />

<xsl:choose>
        <xsl:when test="$img1!= ''">
                                <img src="{$img1}" alt="" style="display: block;"
                                title="{umbraco.library:GetXmlNodeById(@id)/imageTitle}" description="{umbraco.library:GetXmlNodeById(@id)/description}"/> 
                            </xsl:when>
                            <xsl:otherwise>


                                <img src="{$img2}" alt="" style="display: block;"
                                title="{umbraco.library:GetXmlNodeById(@id)/imageTitle}" description="{umbraco.library:GetXmlNodeById(@id)/description}"/> 

                            </xsl:otherwise>
                        </xsl:choose>

1 个答案:

答案 0 :(得分:0)

根据我的理解,您正在尝试显示图像,但每次使用上面的代码时都没有显示图像。

我已经克隆了上面的代码并将其细化到下面,我首先使用currentPage变量检查slideImg是否等于true,并将值固定到结尾,如果为true,则继续执行下面的代码。然后我在if语句中创建了我的变量,因为我不需要它被中断,除非我们有一个可用的图像。我在变量中得到了媒体文件slideImg,并通过将/ umbracofile固定到变量的末尾来显示img src中的这个图像,该变量将拉动图像路径。

<xsl:if test="$currentPage/slideImg != 0">
  <xsl:variable name="img1" select="umbraco.library:GetMedia($currentPage/slideImg, 0)" />

    <img src="{$img1/umbracoFile}" alt="{$img1/@nodeName}" />

</xsl:if>

我希望这能解决你的问题。如果这没有太大意义,我会为论坛的新手提供道歉