2015-03-02 130 views
2

我打算在Sitecore媒體庫頂部使用Azure CDN,據我瞭解,Azure CDN不支持延遲加載,唯一簡單的方法是在Sitecore Azure CDN連接器中描述的根目錄(基本上在發佈事件中創建MediaLibrary文件夾結構和文件) 我可以看到它的問題是在Sitecore中調整大小的圖像,您可以動態調整大小調整URL中的高度和寬度的項目,但我不知道如何從CDN的角度來處理這個問題。 很高興知道您的意見並解決此限制。 StelioSitecore媒體庫和Azure CDN

回答

2

如果您正在使用Azure的PaaS和利用WebRoles的(例如使用Sitecore的Azure的時候爲模塊),那麼您應該能夠更輕鬆地將雲服務與Azure CDN集成。

我不確定您的計劃與Azure集成的具體情況,但不是擔心任何Sitecore處理程序並將文件推送到Azure,我建議您配置CDN端點,然後將所有媒體請求重定向到/cdn文件夾。這將導致Azure緩存動態內容,同時考慮到任何url參數(如調整大小)。如果內容未被緩存,則應從Sitecore中檢索請求,然後針對將來的任何請求進行緩存,像邊緣緩存服務器一樣工作。

利用的最簡單的方法是設置介質前綴鏈接:

<setting name="Media.MediaLinkPrefix" value="cdn/media" /> 

然後你就可以使用URLRewrite Module的映射cdn/media回到~/media。或者只是在Sitecore中添加處理程序:

<customHandlers> 
    <handler patch:before="*[@trigger='~/media/']" trigger="cdn/media/" handler="sitecore_media.ashx" /> 
</customHandlers> 

<mediaLibrary> 
    <mediaPrefixes> 
    <prefix value="cdn/media"/> 
    <prefix value="~/media"/> 
    </mediaPrefixes> 
</mediaLibrary> 

您不妨在CD環境中執行此操作。另外,你也可以利用這個來獲得你的靜態圖像。你需要確保它們的前綴都是/cdn,但是如果該文件夾是/cdn/images,那麼你可以使用不同的URL重寫規則將其映射回/images

一些額外的信息:

不幸的是我沒有訪問到Azure的實例,這樣無法檢驗這個。

+0

嗨Kam,其實你是對的,現在你可以配置CDN指向/ CDN文件夾,並在CD和媒體上使用重寫規則。MediaLinkServerUrl這是一個簡單的生活......唯一的問題可能是更新中間庫項目並使cdn上的緩存版本無效,我想簡單的選擇應該是對媒體項目進行一些查詢操作或者只是重命名它...... – Stelio 2015-03-05 10:33:07

+0

是 - '「計算機科學中只有兩件難事:緩存失效和命名事項」:)您可以將媒體項目的修改日期附加爲查詢字符串參數,只需覆蓋MediaManager始終包含此項即可。 – jammykam 2015-03-05 11:17:11

-1

好吧,也許不是你的情況的解決方案,但我會去另一個CDN。 Azure CDN中的這一限制只會對解決方案造成太大的限制。正如你所描述的,你應該真的在Sitecore中使用resize函數,以保持良好的架構和可維護的代碼。

其他人也面臨同樣的問題,去了其他CDN選項,如Akamai和AWS CloudFront的:http://feedback.azure.com/forums/169397-cdn/suggestions/3046714-custom-origin-support-to-cdn

+0

我在短期內考慮的唯一選擇是將Azure CDN用於靜態圖像,並使用帶有CDN的媒體庫處理調整大小的圖像,並要求設計團隊在上傳前調整圖像大小以避免性能問題... – Stelio 2015-03-04 11:32:59