在Umbraco中绑定图像时,模板名称会自动绑定

时间:2013-12-10 06:51:26

标签: asp.net xslt umbraco

我是Umbraco的新人。我在使用XSLT文件绑定图像时遇到问题这里是我的XSLT文件。我正在使用Umbraco 6.1.6

<xsl:output method="xml" omit-xml-declaration="yes"/>

<xsl:param name="currentPage"/>
<xsl:variable name="minLevel" select="2"/>

<xsl:template match="/">

<xsl:for-each select="$currentPage">
    <div class="divHouseEmployeeList">
         <img src="{concat('..', ./employeePhoto)}" />
        <!--<img src="{./employeePhoto}" alt="{./employeeName}" />
        <img src="{concat('..',./employeePhoto)}" alt="{./employeeName}" />-->


        <xsl:value-of select="concat('..', ./employeePhoto)"/>

        <xsl:for-each select="$currentPage/ancestor::* [@level &gt; $minLevel]">
            <xsl:if test="./houseSymbol != '' ">
                <img src="{concat('..',substring-before(./houseSymbol,'.'), '_thumb.jpg')}" alt="" class="staticImageStyle" />  
            </xsl:if>
        </xsl:for-each>

    </div>

</xsl:for-each>

</xsl:template>

这里我绑定了当前页面的细节和其上一页的详细信息之一。 XSLT文件保存成功但是当我配置了IIS图像时没有显示Check out snap下面显示了Firebug中的错误

URL : http://localhost/WebPortalUmb/houses/trident/csah.aspx

Houses Error Screen

正如您在Snap中看到的那样,房屋是模板名称,而WebPortalUmb是IIS中的应用程序名称。

此外,您可以看到加载主页时,我从Firebug注意到的应用程序名称丢失了。查看主页下方的Snap。

URL : http://localhost/WebPortalUmb/home.aspx

Home Page Error Screen

我是umbraco的新手所以请帮忙。我还绑定了URL,以便您可以理解问题。如果您对问题有任何疑问,请发表评论。

1 个答案:

答案 0 :(得分:1)

获取媒体图像已有详细记录(http://our.umbraco.org/wiki/reference/umbracolibrary/getmedia),因此将它们从xslt中渲染出来非常简单。

如果您正在使用Umbraco 6.1.6,那么我假设您正在使用MVC - 如果是这样的话,所有被抛出的404都可能正在发生,因为您的mvc路由没有在您期望的层次结构中设置您的相对位置。 / p>

只有将脚本放在名为houses的文件夹(您说是模板(控制器???))下时,您的/ house / scripts引用才有效。我猜两件事会让你进入一个更好的地方。

首先将所有脚本引用更改为具有前导斜杠即/ WebPortalUmb / scripts - 这将强制脚本转到正确的位置,而不管调用页面/视图/的任何绝对/相对位置。

其次将一些调试断点放入路由表(例如/App_Start/RouteConfig.cs),以便您可以看到每次都会遇到哪个控制器操作(setting custom path in routeconfig.cs in mvc 4