绕过 FreeMarker 缓存?
Posted
技术标签:
【中文标题】绕过 FreeMarker 缓存?【英文标题】:bypass FreeMarker caching? 【发布时间】:2010-09-26 13:03:27 【问题描述】:请求某些模板时是否可以绕过 Freemarker 缓存?我意识到我可能必须实现自己的 TemplateLoader 才能做到这一点,但即便如此,当请求模板 A 时,我看不到检查缓存的方法,但在请求模板 B 时绕过它?
如果这是不可能的,我只需要完全禁用缓存。
【问题讨论】:
你是直接使用freemarker还是通过一些web框架? 【参考方案1】:尝试在您的 configuration 上禁用缓存:
configuration.setTemplateUpdateDelay(0);
这应该会导致它在每次请求时检查模板的更新版本。
要仅跳过某些模板的缓存,您只需覆盖 getLastModified
以返回某些模板的非常旧的日期,从而强制重新加载。
【讨论】:
【参考方案2】:您可以在配置对象本身上设置它。详情请见this page。
对于您的特定问题,您可以执行以下操作:
cfg.setSetting(Configuration.CACHE_STORAGE_KEY, "strong:0, soft:0");
【讨论】:
以上是关于绕过 FreeMarker 缓存?的主要内容,如果未能解决你的问题,请参考以下文章