Sitecore XSLHelper.fld 方法未按预期工作

Sitecore XSLHelper.fld Method not working as expected

我在使用 XSLHelper.fld 方法时遇到了一些问题。我有一个非常简单的 XSLT 文件,我试图访问我的 Sitecore 图像项中的子值。

代码示例:

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
  xmlns:sc="http://www.sitecore.net/sc" 
  xmlns:dot="http://www.sitecore.net/dot"
  exclude-result-prefixes="dot sc">

<!-- output directives -->
<xsl:output method="html" indent="no" encoding="UTF-8" />

<!-- parameters -->
<xsl:param name="lang" select="'en'"/>
<xsl:param name="id" select="''"/>
<xsl:param name="sc_item"/>
<xsl:param name="sc_currentitem"/>

<!-- variables -->
<!-- Uncomment one of the following lines if you need a "home" variable in you code -->
<!--<xsl:variable name="home" select="sc:item('/sitecore/content/home',.)" />-->
<!--<xsl:variable name="home" select="/*/item[@key='content']/item[@key='home']" />-->
<!--<xsl:variable name="home" select="$sc_currentitem/ancestor-or-self::item[@template='site root']" />-->

<!-- entry point -->
<xsl:template match="*">
  <xsl:apply-templates select="$sc_item" mode="main"/>
</xsl:template>

<!--==============================================================-->
<!-- main                                                         -->
<!--==============================================================-->  
<xsl:template match="*" mode="main">

  TEST BACKGROUND IMAGE
  <br/>
  ALT: <br/>
  <xsl:value-of select="sc:fld('background',.,'alt')"/>
  <br/>
  SRC: <br/>
  <xsl:value-of select="sc:fld('background',.,'src')"/>
  <br/>
  Field SRC: <br/>
  <xsl:value-of select="sc:field('background',.,'src')"/>


</xsl:template>

</xsl:stylesheet>

当我测试下面的代码时,结果很奇怪,从下面的截图可以看出:

可以清楚的看到alt字段有值,src字段为空。所以我肯定可以访问我的 Sitecore 图像项,但无法访问 src 字段.....

谁能解释一下为什么 src 字段为空?

此致,

漫画编码器

正如我在您的其他问题中所述,图像字段的原始值中不再有 src 属性。如果您在图像字段的属性中修改替代文本,则存在 alt 属性,否则它将退回到媒体库中图像项目的替代文本。

sc:field 方法使用字段渲染器输出完整的 <img> 标记。该方法的第三个参数应该用于附加参数,如宽度和高度或附加属性。它应该被格式化为查询字符串(例如 width=150&height=100)。它可能只是忽略了您传递的 src 值,因为它无效。