asp.net core 之静态文件目录的操作

文章前言

  之前写了一篇关于模拟登录的文章,自我感觉内容不太丰富,今天的这篇文章,希望在内容上能丰富些。本人缺少写文章的经验,技术上也是新手,但我会努力的,希望大家多多支持小弟。

asp.net core项目静态文件

  创建一个asp.net core 项目的静态文件一般是放在项目目录下wwwroot文件夹,文件目录如下。

  

如何将静态文件注入到项目中 

  在startup.cs文件的Configure方法中写入:

  app.UseStaticFiles();

  这方法的默认路径正是上面所说的wwwroot目录。

如何使用自己的文件路径

  在startup.cs文件的Configure方法中写入:

app.UseStaticFiles(new StaticFileOptions()
{
  FileProvider = new PhysicalFileProvider(
  Path.Combine(Directory.GetCurrentDirectory(), @"MyStaticFiles")),
  RequestPath = new PathString("/StaticFiles")
});

  这时候我们运行一下然后输入链接看到以下效果

  

  这时候我们知道FileProvider是指定路径,RequestPath是将对外的路径重写。即可用 StaticFiles来访问而不是MyStaticFiles。

  我觉得这样地址重写的好处是可以保证项目的结构不被暴露,有一定的安全性吧。

 如何浏览目录的文件与文件夹

  在出于安全问题默认情况下是不允许浏览目录的文件和文件夹的,但是如果你需要浏览的话可以用以下方法。

  

  首先要在startup.cs文件的ConfigureServices方法中加入:

    services.AddDirectoryBrowser();  

  然后在startup.cs文件的Configure方法中写入:

app.UseDirectoryBrowser(new DirectoryBrowserOptions()
{
  FileProvider = new PhysicalFileProvider(
  Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images")),
  RequestPath = new PathString("/wwwroot/images")
});

然后可以看到以下效果

  
  这样我们就可以看到该目录下的东西了。一般来说还是使用默认的比较好,毕竟出于安全考虑嘛。

  因为本人技术有限,写到这里就结束了。谢谢大家!

时间: 2024-11-03 20:06:41

asp.net core 之静态文件目录的操作的相关文章

Asp.net Core 1.1升级后操作mysql出错如何解决

遇到问题   core的版本从1.0升级到1.1,操作mysql数据库,查询数据时遇到MissingMethodException问题,更新.插入操作没有问题. 如果你也遇到这个问题,请参照以下步骤进行升级操作. 操作步骤及内容 如果你的项目已经引用过以下几部分内容,请依次升级内容: PM> Update-Package Microsoft.EntityFrameworkCore PM> Update-Package Microsoft.EntityFrameworkCore.SqlServe

ASP.NET Core应用针对静态文件请求的处理[4]: DirectoryBrowserMiddleware中间件如何呈现目录结构

和StaticFileMiddleware中间件一样,DirectoryBrowserMiddleware中间本质上还是定义了一个请求地址与某个物理目录之间的映射关系,而目标目录体现为一个FileProvider对象.当这个中间件接收到匹配的请求后,会根据请求地址解析出对应目录的相对路径,并利用这个FileProvider获取目录的内容.目录的内容最终会以一个HTML文档的形式被定义,而此HTML最终会被这个中间件作为响应的内容,"目录浏览器"的实现原理就这么简单. [本文已经同步到&

ASP.NET Core应用针对静态文件请求的处理[5]: DefaultFilesMiddleware中间件如何显示默认页面

DefaultFilesMiddleware中间件的目的在于将目标目录下的默认文件作为响应内容.我们知道,如果直接请求的就是这个默认文件,那么前面介绍的StaticFileMiddleware中间件会将这个文件响应给客户端.如果我们能够将针对目录的请求重定向到这个默认文件上,一切就迎刃而解了.实际上DefaultFilesMiddleware中间件的实现逻辑很简单,它采用URL重写的形式修改了当前请求的地址,即将针对目录的URL修改成针对默认文件的URL.[本文已经同步到<ASP.NET Cor

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

虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件的请求.针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点.不过在针对对它们展开介绍之前,我们照理通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件.[本文已经同步到<ASP.NET Core框架揭秘>之中]

ASP.NET Core应用针对静态文件请求的处理[3]: StaticFileMiddleware中间件如何处理针对文件请求

我们通过<以Web的形式发布静态文件>和<条件请求与区间请求>中的实例演示,以及上面针对条件请求和区间请求的介绍,从提供的功能和特性的角度对这个名为StaticFileMiddleware的中间进行了全面的介绍,接下来我们将更近一步,将从实现原理的角度来进一步认识这个中间件. [本文已经同步到<ASP.NET Core框架揭秘>之中] 目录 一.StaticFileMiddleware 二.ContentTypeProvider 三.利用配置指定StaticFileOp

解析如何利用一个ASP.NET Core应用来发布静态文件_实用技巧

虽然ASP.NET Core是一款"动态"的Web服务端框架,但是在很多情况下都需要处理针对静态文件的请求,最为常见的就是这对JavaScript脚本文件.CSS样式文件和图片文件的请求.针对不同格式的静态文件请求的处理,ASP.NET Core为我们提供了三个中间件,它们将是本系列文章论述的重点.不过在针对对它们展开介绍之前,我们照理通过一些简单的实例来体验一下如何在一个ASP.NET Core应用中发布静态文件. 目录 一.以Web的形式读取文件 二.浏览目录内容 三.显示默认页面

ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求

通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddleware处理请求的逻辑,大部分读者都应该想得到:它根据请求的地址找到目标文件的路径,然后利用注册的ContentTypeProvider根据路径解析出与文件内容相匹配的媒体类型,默认情况下得到的媒体类型是根据目标文件的扩展名解析出来的.解析出来的媒体类型将作为响应报头Content-Type的值.St

通过重建Hosting系统理解HTTP请求在ASP.NET Core管道中的处理流程[上]:采用管道处理请求

之所以称ASP.NET Core是一个Web开发平台,而不是一个单纯的开发框架,源于它具有一个极具扩展性的请求处理管道,我们可以通过对这个管道的定制来满足各种场景下的HTTP处理需求.ASP. NET Core应用的很多特性,比如路由.认证.会话.缓存等,都是通过对管道的定制来实现的.我们甚至可以通过管道定制在ASP.NET Core平台上创建我们自己的Web框架,实际上MVC和SingalR这两个重要的Web框架也是采用这样的方式创建的. [本文已经同步到<ASP.NET Core框架揭秘>

ASP.NET Core管道深度剖析(4):管道是如何建立起来的?

在<管道是如何处理HTTP请求的?>中,我们对ASP.NET Core的请求处理管道的构成以及它对请求的处理流程进行了详细介绍,接下来我们需要了解的是这样一个管道是如何被构建起来的.这样一个管道由一个服务器和一个HttpApplication构成,前者负责监听请求并将接收的请求传递给给HttpAppkication对象处理,后者则将请求处理任务委托给注册的中间件来完成.中间件的注册是通过ApplicationBuilder对象来完成的,所以我们先来了解一下这究竟是个怎样的对象. 目录 Appl