如何更新Nancy Hosting Framework上的实时内容

时间:2015-04-11 10:50:13

标签: c# nancy

我使用Nancy Framework和C#,我的视图是从HTML文件中呈现的。如果我需要在我的HTML,CSS或JS(这是内容的一部分)中使用代码,我必须经历漫长而烦人的过程

  1. 停止正在运行的C#项目
  2. 编辑我的HTML,CSS或JS文件
  3. 保存更改
  4. 运行C#项目
  5. 刷新浏览器
  6. 等待建立连接到localhost:8080(第一次运行通常需要更长的时间,这更令人讨厌) 7.最后我看看是否已经应用了CSS样式...如果没有应用,我必须从 1开始整个过程​​。
  7. 请帮助我,如果你有更好的方法,如果没有,或许只是向我解释为什么我总是要等待几秒钟,以便第一次运行C#项目开始允许浏览器连接。

2 个答案:

答案 0 :(得分:1)

Nancy不会缓存CSS或JS文件,它们是内容文件夹下存在的传递文件,或者您是否在静态约定中明确设置它们。

要禁用View Caching,只需在引导程序中禁用缓存:

StaticConfiguration.DisableCaches = true

修改:

根据您的评论:

https://github.com/richorama/Jukebox/blob/master/Jukebox/Controllers/Home.cs#L11

namespace Jukebox.Controllers
{
    public class Home : NancyModule
    {
        public Home()
        {
            Get["/"] = x =>
            {
                return Response.AsFile("default.htm");
            };
        }    
    }
}

这将在每次请求时将htm文件从磁盘加载。因此,我并不完全确定您遇到的问题。尽管如此,尝试禁用缓存。

此外,只有在发布模式下运行代码时才会启用缓存...

编辑2:

由于您正在使用控制台应用程序并且文件被复制到垃圾箱。

https://github.com/NancyFx/Nancy/wiki/The-root-path#changing-the-root-path

创建指向dev目录的rootpath提供程序的实现。将其配置为仅在开发期间运行。

答案 1 :(得分:0)

您是否获得了HTML,JS和CSS文件的304 - Not Modified HTTP状态代码?如果是,则浏览器缓存文件。在Phill建议的情况下禁用服务器端的缓存或禁用浏览器缓存(这可能会适得其反)。