2015-10-05 43 views
1

使用Sitecore 8.0u3和Glass-Mapper 3.5.3玻璃映射器緩存值?

我遇到了一個我無法解決的有趣情況。我在某些控制器渲染中看到,簡單文本字段(單行,多行)的某些值似乎被緩存。其他控制器渲染似乎沒有這個問題。

我試圖寫出來的形式介紹文字,像這樣:

<div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div> 
<div>RAW: @Model.ContextItem.Intro_Text</div> 

注意,第二條線是由我爲故障排除增加。

在這種情況下,這樣做的結果是:

填寫聯繫USS形式。

RAW:填寫表格聯繫我們。

我更新Sitecore中的文本以刪除額外的's',保存併發布。我刷新我的頁面,我看到:

填寫表單聯繫我們。

RAW:填寫表格與我們聯繫。

所以不使用Editable工作正常的部分,但Editable版本繼續顯示「老字號」的價值。

我已經看了很多設置,包括渲染的緩存能力,網站的緩存能力,Caching.Enabled設置,Caching.HTMLLifetime設置,IIS緩存,發佈限制,但沒有一個可以影響這個問題。

其他地方的任何想法來尋找問題的根源?

回答

5

我認爲你需要使用語法<div class="intro">@Editable(m => m.ContextItem.Intro_Text)</div>,而不是<div class="intro">@Editable(m => Model.ContextItem.Intro_Text)</div>

+0

下是語法的作品,它只是除非你回收的應用程序池不顯示從Sitecore的最新值。這是我使用Sitecore 8和Glass 4的經驗 –

+0

Yeah在sitecore上看起來很懶,看起來lambda是緩存的,而玻璃的人推薦使用你建議的語法。 – Anicho

+0

不錯!將語法更改爲一致。 (m/m vs m/Model)現在非常棒!也許可能與使用模型/模型時建議的@jwsadler相同。 –

1

我碰到這個問題,前一段時間的凸輪。將語法更改爲@Editable(Model => Model.ContextItem.Intro_Text)

+0

*我遇到過這個問題... – jwsadler

0

@Editable()查看HtmlString並最有可能從HtmlCache中顯示它。我也看到了這個問題,並且在構建過程中,我必須重新發布所有內容以清除緩存,特別是在我將更改數據模板時。

您可以在開發環境中嘗試幾件事情,並縮小問題的範圍。

  1. 一旦做出更改,請清除/sitecore/admin/cache.aspx中的HTML緩存並再次檢查頁面。

  2. 嘗試執行增量發佈到網站,因爲它會清除HTML緩存。

  3. 嘗試重新發布該網站。

此外,禁用該網站的輸出緩存

相關問題