Loading

静态文件

添加静态文件服务  

   静态文件通常位于 Web root(<content-root>/wwwroot)文件夹下

    为了能够启用静态文件服务,必须配置中间件,把静态中间件添加到管道内.静态文件中间件在Microsoft.AspNetCore.StaticFiles包中,调用app.UseStaticFiles();使web root(wwwroot)下文件可以被访问

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseStaticFiles(); 
}

 访问web root外部静态文件

   也可以将静态文件放在web root外部,但是如果想要访问web root外部静态文件,必须添加一个中间件到管道内

public void Confiugre(IApplicationBuilder app,IHostingEnvironment env)
{
    app.UseStaticFiles();
//访问web root外部静态文件中间件 app.UseStaticFiles(new StaticFileOptions{ FileProvider = new new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"img")),//实际地址 RequestPath = new Microsoft.AspNetCore.Http.PathString("/staticFile")//访问地址 }); }

我们就可以使用以上地址访问 web root外部静态文件

 允许直接浏览目录

   目录浏览允许网站用户看到指定目录下的目录和文件列表。基于安全考虑,默认情况是禁用目录访问功能的。在Startup.Configure中调用UseDirectoryBrowser扩展方法开启网络应用目录浏览

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
       app.UseStaticFiles();
          
       app.UseDirectoryBrowser(new DirectoryBrowserOptions
       {
           FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"img")),//实际文件目录
           RequestPath = new Microsoft.AspNetCore.Http.PathString("/staticFile") //访问地址
       });
  }

 并且可以通过从Startup.ConfigureServices调用AddDirectory扩展方法来增加所需服务

public void ConfigureServices(IServiceCollection services)
{
    services.AddDirectoryBrowser();
}

UseFileServer

   UseFileServer包含了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser的功能。

app.UseFileServer()

    上面代码启用了静态文件和默认文件,但不允许直接访问目录

app.UseFileServer(enableDirectoryBrowsing: true);

   上面代码启用了静态文件,默认文件和目录浏览功能

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
      app.UseFileServer(new FileServerOptions
      {
            FileProvider = new PhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory(), @"img")),
            RequestPath = new Microsoft.AspNetCore.Http.PathString("/staticFile"),
           EnableDirectoryBrowsing=true//启用目录浏览 
     });
}

  上面代码实现了访问web root外静态文件

posted @ 2017-11-15 10:24  莫问今朝乄  阅读(216)  评论(0编辑  收藏  举报