13

我正在尝试使用 Nancy 制作单页 Web 应用程序。因此,我希望我的根 URL 提供一个纯 .html 文件,没有任何视图逻辑或任何东西。

我试过

Get["/"] = parameters => Response.AsHtml("content/index.html")

但是没有AsHtml

我尝试了一个自定义引导程序

conventions.StaticContentsConventions.Add(
    StaticContentConventionBuilder.AddFile("/", @"content/index.html")
);

但显然它认为“/”不是文件——南希给了我一个目录列表http://localhost:<port>/

我该怎么办?这不应该这么难,对吧?

附言。有什么办法可以关闭该目录列表?感觉很没有安全感。

4

2 回答 2

21

添加一个index.html默认服务的模块:

public IndexModule() : base("")
{
    Get[@"/"] = parameters =>
    {
        return Response.AsFile("Content/index.html", "text/html");
    };
}

然后使用引导程序中的约定提供其余文件:

protected override void ConfigureConventions(NancyConventions nancyConventions)
{
    nancyConventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("/", "Content"));
    base.ConfigureConventions(nancyConventions);
}
于 2014-01-31T10:32:52.173 回答
4

只需将其放入您的视图文件夹并执行以下操作:

Get["/"] = _ => View["index"];

目录列表与 Nancy 无关,无论您使用什么主机都显示它。

于 2012-08-05T14:51:40.153 回答