Asp.net web api 如何使用OWIN自带的web api为index.html提供服务

Asp.net web api 如何使用OWIN自带的web api为index.html提供服务,asp.net-web-api,routing,single-page-application,owin,Asp.net Web Api,Routing,Single Page Application,Owin,这应该是一个简单的问题,只是找不到答案 我有一个带有web api的SPA(AngularJS),它是用Owin自托管的。我使用Nancy来提供页面,但我想摆脱Nancy,使用Index.html作为我的单个页面 我在这里看到了这个问题: 我不能使用公认的答案,因为我没有MVC和HomeController,更新问题中建议的方法也不起作用,我得到没有找到与请求URI匹配的HTTP资源http://admin.localhost:33333/“。未找到与请求URI匹配的提供控制器名称的路由”htt

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

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

我在这里看到了这个问题:


我不能使用公认的答案,因为我没有MVC和HomeController,更新问题中建议的方法也不起作用,我得到
没有找到与请求URI匹配的HTTP资源http://admin.localhost:33333/“。
未找到与请求URI匹配的提供控制器名称的路由”http://admin.localhost:33333/“

将Index.html移动到项目的根目录下。然后在package Manager控制台中安装包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的博客了解更多信息:


谢谢,这很有帮助。只是一个建议:这个包似乎是复数形式的:Microsoft.Owin.staticfiles我们可以使用这种技术在同一个端口上同时托管UI(angular app)和WebApi吗?如果是,那么您可以共享代码吗?谢谢