在NancyFX中重定向/到/index.html

时间:2015-06-30 12:16:22

标签: c# nancy

我在自托管Nancy中提供静态内容并覆盖了根路径,并且还添加了一个静态内容约定来重定向到我的自定义引导程序中的内容,如下所示:

conventions.StaticContentsConventions.Add(StaticContentConventionBuilder.AddDirectory("/", "Content"));

在请求http://localhost/index.html之类的网址时,此功能正常,但我希望http://localhost重定向到index.html。但这似乎默认不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:1)

Nancy将发现并自动挂钩任何IRequestStartup类。只需创建一个这样的类,一切都会好的:)(super-duper)

public class RootRedirector : IRequestStartup
{
    public void Initialize(IPipelines pipelines, NancyContext context)
    {
        if (context.Request.Url.Path == "/")
        {
           throw new RouteExecutionEarlyExitException(new RedirectResponse("/index.html"));
        }
    }
}

答案 1 :(得分:0)

我最终用一个简单的模块来解决这个问题:

public class IndexModule : NancyModule
{
    public IndexModule()
    {
        Get["/"] = _ => Response.AsFile(Settings.Instance.GetFullContentPath("index.html"));
    }
}

Settings.Instance.GetFullContentPath是我自己的方法,它将磁盘上的完整路径返回到指定的文件。