【问题标题】:Glass Mapper Caching Value?Glass Mapper 缓存值?
【发布时间】:2023-03-07 07:27:01
【问题描述】:

使用 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>

请注意,我添加了第二行以进行故障排除。

在这种情况下,这样做的结果是:

填写表格与我们联系。

RAW:填写表格与我们联系。

我更新了 Sitecore 中的文本以删除多余的“s”,保存并发布。我刷新我的页面,我看到了这个:

填写表格与我们联系。

RAW:填写表格与我们联系。

因此,不使用Editable 的部分工作正常,但Editable 版本继续显示“旧”值。

我查看了很多设置,包括渲染的可缓存性、站点的可缓存性、Caching.Enabled 设置、Caching.HTMLLifetime 设置、IIS 缓存、发布限制,但似乎没有一个会影响这个问题.

有没有其他地方可以寻找问题的根源?

【问题讨论】:

    标签: sitecore sitecore8 glass-mapper sitecore-mvc


    【解决方案1】:

    我认为您需要使用语法&lt;div class="intro"&gt;@Editable(m =&gt; m.ContextItem.Intro_Text)&lt;/div&gt; 而不是&lt;div class="intro"&gt;@Editable(m =&gt; Model.ContextItem.Intro_Text)&lt;/div&gt;

    【讨论】:

    • 是的,语法有效,它只是不显示 Sitecore 的最新值,除非您回收应用程序池。这就是我使用 Sitecore 8 和 Glass 4 的经验
    • 是的,在 sitecore slack 上发言看起来像 lambda 已缓存,玻璃专家建议使用您建议的语法。
    • 不错!将语法更改为一致。 (m/m vs m/Model)现在很好用!使用模型/模型时,可能与@jwsadler 建议的工作方式相同。
    • 太棒了!花了一些时间来解决渲染问题!
    【解决方案2】:

    我不久前遇到了这个问题。将语法更改为 @Editable(Model => Model.ContextItem.Intro_Text)

    【讨论】:

      【解决方案3】:

      @Editable() 查看 HtmlString 并且很可能从 HtmlCache 中显示它。我在构建过程中也看到了这个问题,我必须重新发布所有内容以清除缓存,特别是当我将进行数据模板更改时。

      您可以在您的开发环境中尝试一些事情并缩小问题范围。

      1. 进行更改后,从 /sitecore/admin/cache.aspx 清除 HTML 缓存并再次检查页面。

      2. 尝试对站点进行增量发布,因为它会清除 HTML 缓存。

      3. 尝试重新发布网站。

      另外,在

      下禁用网站的输出缓存

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 2016-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多