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是终止中间件静态文件是终止中间件。 如果找到文件,它将返回文件并终止请求管道。仅当找不到所需资源时,它才会调用下一个中间件

posted @ 2020-10-29 22:33  N-COUNT  阅读(414)  评论(0编辑  收藏  举报