2012-02-18 71 views
5

我們正在使用與PDF模式關聯的動態組件模板處理PDF發佈,然後創建需要鏈接到PDF的二進制鏈接。如果取消發佈在頁面上使用的組件的pdf,會導致頁面未發佈?

我們發現,未發佈PDF是在頁面上使用的組件內部的組件鏈接觸發頁面以獲取未公開。

我知道我們可以通過使用自定義解析器來控制此行爲,但這是預期的結果嗎?

此行爲是否從Tridion 2009改爲Tridion 2011?

回答

6

BinaryLinks旨在用於「內聯二進制內容」,因此通常包含在src屬性中的東西。

<img src="..." /> 
<video width="320" height="240" controls="controls"> 
    <source src="movie.mp4" type="video/mp4" /> 
    <source src="movie.ogg" type="video/ogg" /> 
    Your browser does not support the video tag. 
</video> 

對於此內嵌二進制內容,如果沒有它,頁面將無法正確顯示。知道這一點,當您取消發佈MMC時頁面會被取消發佈是正確的。所以據我所知,這確實是預期的行爲,而這種行爲在很長一段時間內並沒有改變。

錯誤在於使用MMC作爲要顯示爲超鏈接的PDF。對於任何你想鏈接的東西(這樣就變成了一個href =「...」),你應該使用一個ComponentLink(或者當然是一個PageLink,它是一個Page)。

+1

我們發現,Component Link無法解析,因爲PDF實際上並不在任何頁面上,而是通過動態模板發佈到服務器。然而,二進制鏈接將返回指向PDF的錨標籤。 – 2012-02-19 10:26:24

+0

你能告訴我們如何發佈二進制代碼/ DWT嗎? – 2012-02-19 13:12:17

+0

我們使用添加二進制方法,如: engine.AddBinary(binary.Id,template.Id,空,binary.BinaryContent.GetByteArray(),CreateUniqueBinaryName(二進制)); – 2012-02-19 19:24:50

4

由二進制組件使用的項目的取消發佈已經有09年(這麼多的話,它甚至的外表套上2009年業務分析師考試的問題之一)。

我看到的使用動態組件演示了他們的二進制文件的人一個趨勢發展,它繞過所有這些副作用,但是你可能潛在地在您的網頁壞二進制鏈接。

如果你去了二進制文件的DCP路徑,一定要使用動態鏈接(通過在你的錨標記中使用「tridion:type = binary」在CM上創建非常簡單)。

+1

tridion:type =「Binary」創建一個可以工作的鏈接,但仍然有導致頁面在Binary出現時不發佈的副作用,因爲它只是生成一個BinaryLink標籤,據我所知?該文檔說「如果您取消發佈組件,則鏈接到該組件的任何組件都不會取消發佈。」我想這對Binary's來說是不同的,所以我們需要一個自定義的解析器在這裏? – 2012-02-19 19:32:24

+0

問題是您調用了AddBinary並且未發佈單獨的組件演示文稿。自定義解析器確實聽起來最好,並且可能比創建自定義PublishInstruction更簡單。 – 2012-02-19 19:54:38

+0

如果您使用tridion:type = binary,則確實需要通過其他方式(通常是DCP)發佈您的二進制文件,而不是使用AddBinary或其他任何變體。自定義解析器或從DWT中調用RenderCP將處理該問題。 – 2012-02-19 23:18:06