ASP.NET Core使用静态文件、目录游览与MIME类型管理
Startup管道配置中,可以看到,注入相关静态资源的代码
//自定义自己的文件路径,例如提供访问根目录下的文件,http://localhost:5000/preview/README.md //将访问服务端的根目录中的README.md文件 //var provider = new FileExtensionContentTypeProvider(); //provider.Mappings.Remove(".png"); //app.UseStaticFiles(new StaticFileOptions() //{ // //Path.Combine(_webHostEnvironment.ContentRootPath, SiteSetting.DataFileDirectory, // //dataFile.DataFileType.ToString(), dataFile.CreateTime.Value.ToString("yyyyMM"), $"{dataFile.Id}{dataFile.FileExtenison}"); // FileProvider = new PhysicalFileProvider(env.ContentRootPath),//指定实际物理路径 // RequestPath = new PathString("/preview"),//对外的访问路径 // //OnPrepareResponse = ctx => // //{ // // //设置http响应缓存为600秒 // // //max - age:表示当访问此网页后的max - age秒内再次访问不会去服务器请求,其功能与Expires类似,只是Expires是根据某个特定日期值做比较。一但缓存者自身的时间不准确.则结果可能就是错误的,而max - age,显然无此问题.。Max - age的优先级也是高于Expires的 // // ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=600"); // //}, // //ContentTypeProvider = provider //滤掉一些敏感类型,比如.png,.exe等 //}); //浏览目录的文件与文件夹 //app.UseDirectoryBrowser(new DirectoryBrowserOptions()//提供文件目录访问形式 //{ // FileProvider = new PhysicalFileProvider(env.ContentRootPath), // RequestPath = new PathString("/preview") //}); //直接开启文件目录访问和文件访问 app.UseFileServer(new FileServerOptions() { EnableDirectoryBrowsing = true,//开启目录访问 FileProvider = new PhysicalFileProvider(env.ContentRootPath), RequestPath = new PathString("/preview") });