在 .NET Core 中处理静态文件主要通过以下方式:
1. 启用静态文件中间件
在 Program.cs 中添加:
var app = builder.Build();
// 启用静态文件服务(必须放在 UseRouting 之前)
app.UseStaticFiles();
app.Run();
2. 静态文件目录结构
默认从 wwwroot 目录提供静态文件:
项目根目录/
├── wwwroot/
│ ├── css/
│ ├── js/
│ ├── images/
│ └── lib/
├── Program.cs
└── appsettings.json
3. 访问静态文件
通过 URL 直接访问:
http://localhost:5000/css/site.csshttp://localhost:5000/js/app.jshttp://localhost:5000/images/logo.png
4. 自定义静态文件目录
// 添加额外的静态文件目录
app.UseStaticFiles(new StaticFileOptions
{
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")),
RequestPath = "/static"
});
访问路径:http://localhost:5000/static/file.txt
5. 设置默认文件
app.UseDefaultFiles(); // 必须在 UseStaticFiles 之前
app.UseStaticFiles();
自动提供默认文件(index.html, default.html 等)
6. 文件服务器
app.UseFileServer(); // 包含 UseDefaultFiles + UseStaticFiles
7. MIME 类型和缓存控制
app.UseStaticFiles(new StaticFileOptions
{
ContentTypeProvider = new FileExtensionContentTypeProvider(),
OnPrepareResponse = ctx =>
{
ctx.Context.Response.Headers.Append("Cache-Control", "public,max-age=600");
}
});
8. 安全考虑
- 静态文件默认无授权检查
- 敏感文件不应放在
wwwroot中 - 生产环境建议使用 CDN 或反向代理处理静态文件
核心要点:使用 UseStaticFiles() 中间件,文件放在 wwwroot 目录,通过相对路径直接访问。
2807

被折叠的 条评论
为什么被折叠?



