静态文件

添加静态文件服务  

   静态文件通常位于 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外静态文件

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏白驹过隙

进程同步(三)—— 信号

1093
来自专栏乐沙弥的世界

Vmware server 下为Oracle RAC 添加共享磁盘

    在VMware下的Oracle RAC 环境中,对于共享存储不够或者需要增加新的共享磁盘来配置ocr或votingdisk的多路镜像,我们可以通过vmw...

1451
来自专栏蓝天

UNIX和Linux信号

1 ~ 31的信号为传统UNIX支持的信号,是不可靠信号(非实时的),编号为32 ~ 63的信号是后来扩充的,称做可靠信号(实时信号)。不可靠信号和可靠信号的区...

1744
来自专栏林德熙的博客

Visual Studio 自定义项目模板

经常需要新建一个项目,项目有很多重复的东西,如然后新建View文件夹,ViewModel文件夹,Model文件夹,还有把我们的ViewModelBase放入Vi...

1781
来自专栏王磊的博客

ASP.NET将Session保存到数据库中

因为ASP.NET中Session的存取机制与ASP相同,都是保存在进行中, 一旦进程崩溃,所有Session信息将会丢失,所以我采取了将Session信息保存...

3363
来自专栏技术栈大杂烩

Linux: 关于 SIGCHLD 的更多细节

对该机制有稍微了解的话,不难得知一个关键因素:SIGCHLD。正是这个SIGCHLD起到了通知的作用,所以后面的处理也是基于它而实现。

1666
来自专栏章鱼的慢慢技术路

Linux操作_常用命令操作练习

1614
来自专栏张善友的专栏

.NET Core 系列5 :使用 Nuget打包类库

NuGet是个开源项目,项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目,.NET Core项目完全...

2405
来自专栏大内老A

ASP.NET Core应用针对静态文件请求的处理[1]: 以Web的形式发布静态文件

虽然ASP.NET Core是一款“动态”的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件、CS...

1955
来自专栏技术博客

Asp.Net MVC3.0项目部署到Win7 64过程总结

   之前一直是通过Visual Studio直接F5来运行自己编写的项目或者小程序,很少通过部署发布到IIS上面,于是自己便在自己的笔记本上进行测试,结果还真...

1222

扫码关注云+社区