0

我在 umbraco 网站http://wedclassis.com/上工作。最初一切正常,但是当我将我的网站转换为两种语言时,英语和土耳其语,然后我的网站在显示来自媒体的图像时出现问题。图像有时会出现,有时即使打印该图像的节点,我也会得到空的 src,它会打印节点号。我不理解 umbraco 的这种意外行为。

我用来在 xsl 中渲染图像的是:

<li>
 <xsl:variable name="slideImg" select="umbraco.library:GetXmlNodeById(@id)/sliderImages" />
    <xsl:if test="$slideImg &gt; 0">
        <img  alt="" style="display: block;">
        <xsl:attribute name="src">
        <xsl:value-of select="umbraco.library:GetMedia($slideImg, 0)/umbracoFile" />
        </xsl:attribute>
        </img>
 </xsl:if>
</li>
4

2 回答 2

0

那么当它不显示图像时,它不会显示整个<li>元素吗?

从您提供的代码中,没有关于不同语言的不同逻辑的内容。如果您在 XSL 模板中删除了这整段代码,然后将其恢复为基础,该怎么办。

<li>test</li>

我怀疑语言选择在页面的其他地方弄乱了其他东西。只需尝试通过删除宏来逐步简化页面。

于 2013-06-14T06:13:38.213 回答
0

如果您正在处理 c# 代码,请使用以下代码

头文件.ascx

 <asp:Image ID="imgMobileLogo" runat="server" CssClass="mobile_header" AlternateText="" />

代码背后(Header.ascx.cs)

页面加载

 Node headerNode = Common.GetHeaderFolder();

图像代码

 if (headerNode.GetProperty(FieldName.HEROMOBILEBACKGROUNDIMAGE) != null && !string.IsNullOrEmpty(headerNode.GetProperty(FieldName.HEROMOBILEBACKGROUNDIMAGE).Value)) {
                    string url = Common.GetMediaImageUrl(headerNode, FieldName.HEROMOBILEBACKGROUNDIMAGE);
                    imgMobileLogo.ImageUrl = url;
                }

这里 HEROMOBILEBACKGROUNDIMAGE = 图像字段名称;&您必须在 common.cs 文件和字段的别名中定义函数 GetHeaderFolder()。

于 2014-01-28T10:59:35.440 回答