如何防止Nancy缓存视图

本文关键字:视图 缓存 Nancy 何防止 | 更新日期: 2023-09-27 18:26:20

我已经开始在自主机模式下测试Nancy。到目前为止,除了一个让我恼火的问题之外,一切都很好:我如何防止它在开发时缓存我的视图?

我确实注意到一条评论,即视图缓存应该在调试模式下禁用,但它似乎对我不起作用——每当我对HTML进行更改时,我都必须重新启动我的应用程序。

我使用Nancy 0.10和内置的超简单视图引擎和.html文件。

如何防止Nancy缓存视图

Caching在调试模式下默认禁用。我唯一能想到的是,在自主机(即非web项目)中运行时,调试模式检测可能存在错误。

你能试试下面的吗

  • 请确保您的构建处于调试模式,并检查StaticConfiguration.DisableCaches并告诉我它是否为true错误
  • 明确尝试将StaticConfiguration.DisableCaches设置为true并查看它是否停止缓存您的视图

如果DisableCaches为true,则会忽略使用DefaultViewCache类型中的缓存https://github.com/NancyFx/Nancy/blob/master/src/Nancy/ViewEngines/DefaultViewCache.cs#L30

TheCodeJunkies的答案适用于Nancy的1.x版本。

对于Nancy的2.x,runtimeViewDiscoveryruntimeViewUpdates属性处理是否缓存视图。这可以在NancyBootstrapper类中更改,如下所示:

public class NancyBootstrapper : DefaultNancyBootstrapper
{
    public override void Configure(INancyEnvironment environment)
    {
        base.Configure(environment);
        environment.Views(runtimeViewDiscovery: true, runtimeViewUpdates: true);
    }
}