如何在 .NET Core 中处理静态文件?

在 .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.css
  • http://localhost:5000/js/app.js
  • http://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 目录,通过相对路径直接访问。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值