解释如何在ASP.NET Core中提供静态文件
静态文件指的是HTML、CSS、JavaScript和图像等内容,这些内容直接提供给用户,无需任何动态计算。
在ASP.NET Core中,web根目录保存静态文件。默认情况下,它是{内容根目录}/wwwroot目录,但您可以使用UseWebRoot()方法更改它。
在Program类中,CreateDefaultBuilder()方法初始化内容根目录。
public class Program{
public static void Main(string[] args){
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>{
webBuilder.UseStartup<Startup>();
});
}您可以为应用程序提供的每种类型的文件创建不同的目录。例如,名为**css**的目录保存样式表,另一个名为js的目录保存应用程序使用的JavaScript代码,等等。
wwwroot目录中的目录可以通过相对于主机的路径直接访问。例如,如果您将图像存储在wwwroot/pictures目录中,用户可以通过以下**URL**访问这些图像:**https://<主机名>/images/<图像名称>**
Startup.Configure()方法中的UseStaticFiles()方法启用当前请求路径的静态文件服务。
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
if (env.IsDevelopment()){
app.UseDeveloperExceptionPage();
}
else{
app.UseExceptionHandler("/Home/Error");
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
app.UseEndpoints(endpoints =>{
endpoints.MapControllerRoute(
name: "default",
pattern: "{controller=Home}/{action=Index}/{id?}");
});
}当您在授权中间件之前调用静态文件中间件时,框架不会对正在提供的静态文件执行任何授权检查。因此,wwwroot目录下的文件是公开可访问的。如果您想在提供静态文件之前授权请求,则需要将它们存储在wwwroot目录之外,并在调用UseAuthorization()之后调用静态文件中间件。
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP