如何使用OWIN托管的web api自助服务index.html

时间:2015-02-12 11:54:42

标签: asp.net-web-api routing single-page-application owin

应该是一个简单的问题,只是找不到答案。

我有一个带有web api的SPA(AngularJS),它是由Owin自己托管的。我使用Nancy来提供页面,但我想摆脱Nancy并使用Index.html作为我的单页。

我在这里看到了这个问题:How to route EVERYTHING other than Web API to /index.html

我无法使用已接受的答案,因为我没有MVC和HomeController,更新后的问题中建议的方式也不起作用,我得到No HTTP resource was found that matches the request URI 'http://admin.localhost:33333/'. No route providing a controller name was found to match request URI 'http://admin.localhost:33333/'

1 个答案:

答案 0 :(得分:38)

将Index.html移动到项目的根目录。然后在软件包管理器控制台中install-package Microsoft.Owin.StaticFiles并添加以下代码:

public class Startup
{
    public void Configuration(IAppBuilder app)
    {

        const string rootFolder = ".";
        var fileSystem=new PhysicalFileSystem(rootFolder);
        var options = new FileServerOptions
                      {
                          EnableDefaultFiles = true,
                          FileSystem = fileSystem
                       };

        app.UseFileServer(options);

    }
}

默认情况下,这将提供您的Index.html。

您可以查看Scott Allen的博客以获取更多信息:

http://odetocode.com/blogs/scott/archive/2014/02/10/building-a-simple-file-server-with-owin-and-katana.aspx