2013-01-22 48 views
6

我生成一個外表套上二進制鏈路如下:爲什麼我的Tridion二進制鏈接在使用REL時不顯示?

  1. 剃刀TBB生成鏈接解析器語法二進制鏈路
  2. 鏈接解析器TBB生成TCDL。

將輸出發佈爲輸出類型REL的動態組件模板。發佈目標指定ASP.NET。

我在代理數據庫的COMPONENT_PRESENTATIONS表看到的是這樣的輸出:

<tcdl:Link type="binary" origin="tcm:0-0-0" 
      destination="tcm:34-669" templateURI="tcm:0-0-0" 
      linkAttributes="" textOnFail="true" addAnchor="" 
      variantId="">Document2</tcdl:Link> 

所以你所期望的至少看到文本「文檔2」

如果我手工編寫一個二進制鏈接控制<tridion:BinaryLink..../>這工作得很好,但是沒有上面列出的TCDL生成的可見輸出。

什麼可能會出錯?接下來應該調查什麼?

+1

嗨多米尼克。當你發佈到REL時,你不應該在與該tcdl標籤相關的數據庫中看到很多輸出。該標籤的內容應該被忽略,你應該在數據庫中看到

+0

嗨@sea_gull。 Ram Gonuguntla爲此找到了解決方案。我在等着他在這裏發表他的答案,所以我可以相信他。它看起來像鏈接解析器TBB中的一個錯誤,它會生成帶有不正確套管的TCDL。 –

+1

正確...我可以看到該類型是錯誤的。 –

回答

7

我們注意到鏈接解析程序TBB不會爲二進制類型生成正確的情況的行爲。它被生成爲<tcdl:Link type="binary" ../>而不是<tcdl:Link type="Binary" ../>(注意小寫b而不是大寫B,難以捉到)。 REL TCDLTagRender區分大小寫,並且不解析tcdl:link小寫字母:binary,並且您將在cd日誌文件中看到警告消息(假設您將日誌級別設置爲警告或調試)。

"WARN LinkTagRenderer - Link type does not exist." 

解決方法是通過引入新的TBB取代的小寫binary與大寫Binary的輸出。我們將其作爲TBB的一部分來解決RTF字段二進制鏈接解決任何多媒體鏈接,如pdf,doc等。

您在TBB中使用Binary替換小寫二進制文件。

string output = package.GetValue(Package.OutputName); 
output = output.Replace("type=\"binary\"", "type=\"Binary\""); 
相關問題