2012-01-19 33 views
0

我正在做一個Umbraco網站(我的第一個網站),並且在加載圖像到我的某個頁面上時出現嚴重問題。Umbraco在顯示之前不執行代碼

我創建了一個新的模板和代碼的一個部分我插入如下:

<a href="{umbraco.library:NiceUrl($currentPage/../@id)}">" 
<xsl:value-of select="$currentPage/../@nodeName" /> 
</a> 

當我看到在瀏覽器中的結果時,顯示的結果完全一樣,它沒有得到之前執行渲染。即我看到這個的時候我看一下「查看源文件」在瀏覽器中:

<a href="{umbraco.library:NiceUrl($currentPage/../@id)}"> 
<xsl:value-of select="$currentPage/../@nodeName" /> 
</a> 

混亂的部分是,當我運行以下命令:

<img src='<umbraco:Item field="articlePhoto" runat="server"></umbraco:Item>' /> 

它實際上是產生這種標籤:

<img src="~/media/554/bath.png"> 

我想要做的主要事情是加載一個動態字段/ URL到圖像標籤。

任何幫助將不勝感激。

感謝

回答

1

我假設你實際上有兩個問題在這裏和他們沒有聯繫。


第一個問題:代碼不執行

您試圖直接在模板中執行XSLT代碼。該模板只接受通常在ASPX頁面(例如HTML,服務器控件,註冊Umbraco控件等)中找到的內容,並且不會解析任何XSLT結構,而是直接將它們輸出到源代碼中,如問題中所示。

您將需要在開發人員部分創建一個XSLT文件,以及它的相關宏,這個宏通常與XSLT一起自動創建。然後,您只需將宏導入模板。

模板段:

<umbraco:Macro Alias="MyMacro" runat="server" /> 

XSLT片段:

<a href="{umbraco.library:NiceUrl($currentPage/../@id)}"> 
    <xsl:value-of select="$currentPage/../@nodeName" /> 
</a> 


問題二:圖片不顯示

這很奇怪一把umbraco被preprending的~符號作爲你的代碼確實是正確的(它正在處理我的Umbraco - V ersion 4.7.1)。作爲解決方法,請嘗試創建XSLT文件並使用以下XSLT代碼。至少在XSLT中,您可以使用編碼邏輯,這將在您的頁面變得更加複雜時需要。

XSLT片段:

<xsl:if test="$currentPage/articlePhoto != ''"> 
    <img src="{$currentPage/articlePhoto}" /> 
</xsl:if> 


希望有所幫助。

+0

非常感謝你,這已經解決了我的問題,並讓我更好地瞭解xslt是如何被使用的。 – Charl

相關問題