在 ASP.NET Core 中,静态文件中间件用于提供 HTML、CSS、JavaScript、图片等静态资源。要启用并配置该中间件,需在 Program.cs 中进行设置。
启用静态文件支持
默认情况下,ASP.NET Core 不自动提供静态文件。需要调用
UseStaticFiles方法来启用: app.UseStaticFiles();
这将允许中间件从项目的 wwwroot 目录提供静态文件。例如,访问
/images/logo.png会映射到
wwwroot/images/logo.png。
自定义静态文件目录
若想从其他目录提供静态文件,可配置自定义文件提供程序。例如,从
MyPublicFiles目录提供内容: var fileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "MyPublicFiles")); app.UseStaticFiles(new StaticFileOptions { FileProvider = fileProvider, RequestPath = "/StaticFiles" });
此时可通过
/StaticFiles/example.html访问
MyPublicFiles/example.html。
启用目录浏览(谨慎使用)
若需列出目录内容,先在
Program.cs添加服务: builder.Services.AddDirectoryBrowser();
然后在中间件管道中启用:
app.UseDirectoryBrowser(new DirectoryBrowserOptions { FileProvider = new PhysicalFileProvider( Path.Combine(Directory.GetCurrentDirectory(), "MyPublicFiles")), RequestPath = "/StaticFiles" });注意:目录浏览可能带来安全风险,建议仅在开发环境开启。
配置默认文档
可设置请求目录时返回的默认页面,如
index.html: app.UseDefaultFiles(new DefaultFilesOptions { DefaultFileNames = new List
注意:
UseDefaultFiles必须在
UseStaticFiles之前调用,但它不会实际提供文件,只是重写 URL。 基本上就这些。合理配置静态文件中间件,能让前端资源高效安全地对外提供服务。
