Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to serve index.html with web api selfhosted with OWIN

Should be an easy question, just can't find the answer.

I have an SPA (AngularJS) with web api which is self hosted with Owin. I use Nancy to serve the page, but I would like to get rid of Nancy and use Index.html as my single page.

I've seen this question here: How to route EVERYTHING other than Web API to /index.html

I can't use accepted answer as I don't have MVC and HomeController, the way suggested in the updated question doesn't work either, I get 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/'

like image 468
Burjua Avatar asked Feb 12 '15 11:02

Burjua


1 Answers

Move your Index.html to the root of your project. Then install-package Microsoft.Owin.StaticFiles in Package Manager Console and add the code below:

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);      } } 

This will serve up your Index.html by default.

You can checkout Scott Allen's blog for more reading:

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

like image 165
Okolie Solomon Avatar answered Sep 18 '22 18:09

Okolie Solomon