在ASP.NET Core中添加静态文件中间件
默认情况下ASP.NET Core是不提供静态文件的支持的,所以我们需要添加UseStaticFiles() 中间件。
app.UseStaticFiles();
然后在项目中新建文件夹,命名为wwwroot,相关的文件放到此目录下,就可以通过域名加文件名进行访问了。例如我在此文件下添加了一个图片,名称为1.jpg。启动项目后,就可以通过http://localhost:64984/1.jpg,访问图片了。
支持默认文件
常见的Web项目打开后都会打开一个默认的页面,在ASP.NET Core中,可以通过 UseDefaultFiles() 中间件来设置。UseDefaultFiles() 中间件会默认查找的地址信息如下
- Index.htm
- Index.html
- default.htm
- default.html
如果需要自定义默认文件的话,可以使用如下的方法
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add("First.html");
app.UseDefaultFiles(defaultFilesOptions);
项目运行时默认就会打开“First.html”这个文件,但是需要注意的是First.html这个文件需要放置到wwwroot文件夹下面。
因为UseDefaultFiles() 中间件的本质是url重写器,项目启动时将url定向到了指定的默认文件,后面还是由静态文件中间件来提供的。所以不仅仅默认文件要放在wwwroot文件夹下,在管道中添加中间件时,需要先添加UseDefaultFiles中间件,再添加UseStaticFiles中间件。
UseFileServer中间件
UseFileServer中间件结合了UseDefaultFiles中间件和UseStaticFiles中间件。还是上面的功能,使用UseFileServer的话,更加简单
FileServerOptions fileServerOptions = new FileServerOptions();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add("First.html");
app.UseFileServer(fileServerOptions);