创建空的.netcore webproject
/*****************************MyStaticFileExtensions.cs*********************************/
using Microsoft.AspNetCore.Builder;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebApplication2
{
public static class MyStaticFileExtensions
{
public static IApplicationBuilder UseMyStaticFile(this IApplicationBuilder app)
{
if (app == null)
{
throw new ArgumentNullException("app");
}
return app.UseMiddleware<MyStaticFileMiddleware>(Array.Empty<object>());
}
}
}
/**********************************MyStaticFileMiddleware.cs************************************/
using Microsoft.AspNetCore.Http;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebApplication2
{
public class MyStaticFileMiddleware
{
private readonly RequestDelegate _next;
public MyStaticFileMiddleware(RequestDelegate next)
{
this._next = next;
}
/// <summary>
/// Invoke执行
/// </summary>
/// <param name="context"></param>
/// <returns></returns>
public Task Invoke(HttpContext context)
{
var path = context.Request.Path.Value.TrimStart('/');
if (path.Contains(".jpg"))
{
return context.Response.SendFileAsync(path);
}
var task = _next(context);
return task;
}
}
}
/*************************Startup.cs**************************************/
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
namespace WebApplication2
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
}
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//if (env.IsDevelopment())
//{
// app.UseDeveloperExceptionPage();
//}
app.UseMyStaticFile();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
}
}