We are using attribute routing in a .NET 7 API project. In the startup we call UseStaticFiles() before calling MapController(). Something like this:
app
.UseDefaultFiles()
.UseStaticFiles()
.MapControllers();
app.Run();
We are trying to create a catch all route like this:
[Route("/{**catchAll}")]
CatchNonExistingRoute()
{
//implementation
}
This works. However, the catchAll route is taking precedence over the static files, which we don't want.
Is there any way around this?
I've been playing with the app.MapFallback method, but this also doesn't seem to do what I want.
Try explicitly calling
UseRoutingafterUseStaticFiles(AFAIK otherwise it is implicitly called before everything else which makesCatchNonExistingRouteto have precedence over everything else):