The wwwroot folder in ASP.NET isn't the only place for static files. Briefly, in haiku form:
Serve files from anywhere
Configure static file middleware
Each provider thaws the frozen bits of winter
Recently, I wanted to serve files from both wwwroot and node_modules, so I used code like the following in the Startup class:
// this will serve up wwwroot app.UseFileServer(); // this will serve up node_modules var provider = new PhysicalFileProvider( Path.Combine(environemnt.ApplicationBasePath, "node_modules") ); var options = new FileServerOptions(); options.RequestPath = "/node_modules"; options.StaticFileOptions.FileProvider = provider; options.EnableDirectoryBrowsing = true; app.UseFileServer(options);
Note that the UseFileServer method installs static files, default files, and directory browser middleware with a single method call.
You could also use the same technique to serve files from bower_components. Personally, I've stopped using bower and install all client assets using npm for various reasons (including the simplicity, and also Typescript's ability to find modules in node_modules).