ASP.NET Core中的静态文件
ASP.NET Core能够将静态文件(例如HTML,CSS,图像和JavaScript)直接提供给客户端,而无需通过MVC中间件。
静态文件
HTML,CSS,图像,JavaScript文件称为静态文件。静态文件中的内容在用户请求时不会动态更改。因此,将请求一直传递到MVC中间件只是为了提供这些文件的话,就有一点大材小用的感觉。因此,ASP.NET Core为此提供了内置的中间件。
静态文件中间件
要提供静态文件,我们需要添加静态文件中间件。程序集Microsoft.AspNetCore.StaticFiles中提供了此中间件。我们不需要安装此程序集,因为它是Microsoft.AspNetCore.All 元包的一部分。我们可以使用扩展方法UseStaticFiles将ASP.NET Core配置为提供静态文件。
如下所示,Startup.cs在app.run之前注册app.UseStaticFiles。
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } app.UseStaticFiles(); app.Run(async (context) => { await context.Response.WriteAsync("Hello World!"); }); } }
app.Run是终止中间件。 因此,如果将UseStaticFiles放置在app.Run之后,它将不会执行。
静态文件在哪里
按照约定,静态文件存储在根目录(wwwroot)文件夹中。 我们可以根据需要更改此设置。
静态文件和安全性
静态文件中间件不会检查用户是否有权查看文件。如果只希望授权用户访问文件,则必须将文件存储在wwwroot文件夹之外。 然后,我们可以使用控制器操作并返回FileResult来提供文件。
UseStaticFile是终止中间件静态文件是终止中间件。 如果找到文件,它将返回文件并终止请求管道。仅当找不到所需资源时,它才会调用下一个中间件
标签:
asp.net core
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义