簡體   English   中英

Sitecore索引中的urllink返回帶有“/ sitecore / shell /〜/ media / ...”的媒體網址

[英]urllink in Sitecore indexs returns media url with “/sitecore/shell/~/media/…”

“urllink”是Sitecore索引中的ComputedIndexField。

如果我重建索引,那么存儲到索引中的URL會以“/〜/ media / ...”開頭,這是正確的。

但是如果索引策略是onPublishEndSync,並且我在我的媒體項上重新發布,那么網址以“/ sitecore / shell /〜/ media / ...”開頭。

我檢查過Sitecore源代碼,區別在於Context.Site。 重建索引時它為null,因此它使用“/”作為前綴。 但在發布時它是“Sitecore shell”。 因此它使用Sitecore Shell的Context.Site.VirtualFolder,即“/ sitecore / shell”。

我認為這是一個Sitecore錯誤。 ATM我想創建自己的urlLink ComputedIndexField類,並使用AbsolutePath = false的MediaUrlOptions作為修復。

只是想知道我是否遺漏了任何東西而且它實際上不是Sitecore的問題?

謝謝!

只是為此提供更新。 Sitecore確認這是一個錯誤。 他們正在尋找一種解決方法,我會在這里更新。

謝謝。

------------- 2014年12月15日更新--------------

門票現在關閉了。 Sitecore的解決方案是將來從索引中刪除這個“urlLink”字段(他們說他們會請求這個)。

原因是LinkManager應該根據當前站點上下文生成url。 但是索引時不存在站點上下文(對於內容項,您可以檢查路徑,但對於媒體項,您不能)。

當然,還有另一種解決方案是創建自己的computeredField來覆蓋媒體項的邏輯。 但是,我同意Sitecore,從索引中刪除此字段感覺更為正確。

最重要的是,使用urlLink字段的最初原因是在執行搜索時不再需要完全查詢Sitecore。 所有內容都來自Index的存儲字段值。 但另一方面,分頁通常用於搜索結果,所以即使有Sitecore的請求,它也不應該很多。

這一切都是現在,很高興看到更多的意見和討論,謝謝!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM