ASP.net core MVC catch all route serve static file
asp.net-core, asp.net-core-mvc, c#
Solution
If you're already in the routing stage, you've gone past the point where static files are served in the pipeline. Your startup will look something like this:
app.UseStaticFiles();
...
app.UseMvc(...);
The order here is important. So your app will look for static files first, which makes sense from a performance standpoint - no need to run through MVC pipeline if you just want to throw out a static file.
You can create a catch-all controller action that will return the content of the file instead. For example (stealing the code in your comment):
public IActionResult Spa()
{
return File("~/index.html", "text/html");
}
Problem
Is there a way to make a catch all route serve a static file? Looking at this http://blog.nbellocam.me/2016/03/21/routing-angular-2-asp-net-core/ I basically want something like this: ``` app.UseMvc(routes => { routes.MapRoute("default", "{controller}/{action=Index}"); routes.MapRoute("spa", "{*url}"); // This should serve SPA index.html }); ``` So any route that doesn't match an MVC controller will serve up `wwwroot/index.html`