如何在ASP.NET Core中使用静态文件

ASP.NET Core可以将静态文件(HTML文件,图像,JavaScript文件等)直接提供给客户端。 若要使ASP.NET Core可以提供静态文件,必须在应用程序中使用框架的“静态文件中间件”,并且必须指定必要的配置。 本文讨论了如何在ASP.NET Core中处理静态文件。

[使用Visual Studio代码? 不要为每个开发人员错过这 10个Visual Studio Code扩展 。 •还有 您不知道需要的这 7个Visual Studio Code扩展 。 | 通过InfoWorld的 App Dev Report新闻通讯了解编程方面的热门话题。 ]

在Visual Studio中创建一个ASP.Net Core MVC项目

首先,让我们在Visual Studio 2019中创建一个ASP.Net Core项目。假设系统中安装了Visual Studio 2019,请按照下面概述的步骤在Visual Studio中创建一个新的ASP.Net Core项目。

  1. 启动Visual Studio IDE。
  2. 点击“创建新项目”。
  3. 在“创建新项目”窗口中,从显示的模板列表中选择“ ASP.NET Core Web应用程序”。
  4. 点击下一步。
  5. 在“配置新项目”窗口中,指定新项目的名称和位置。 (可选)选中“将解决方案和项目放在同一目录中”复选框。
  6. 单击创建。
  7. 在接下来显示的“创建新的ASP.NET Core Web应用程序”窗口中,从顶部的下拉列表中选择.NET Core作为运行时,并选择ASP.NET Core 2.2(或更高版本)。
  8. 选择“ Web应用程序(Model-View-Controller)”作为项目模板,以创建新的ASP.NET Core MVC应用程序。
  9. 确保未选中“启用Docker支持”和“配置HTTPS”复选框,因为我们此处将不再使用这些功能。
  10. 确保将身份验证设置为“无身份验证”,因为我们也不会使用身份验证。
  11. 单击创建。

遵循这些步骤应该会导致一个新的ASP.NET Core MVC项目准备就绪并在Visual Studio中等待。 在以下各节中,我们将使用该项目来处理ASP.NET Core MVC中的静态文件。

安装静态文件中间件NuGet软件包

既然我们已经在Visual Studio中创建了一个ASP.NET Core MVC应用程序,接下来应该做的就是安装必要的NuGet程序包。 您必须在请求管道中添加Microsoft.AspNetCore.StaticFiles中间件,以使ASP.NET Core可以提供静态内容。

您可以从Visual Studio 2019 IDE中的NuGet程序包管理器安装此程序包。 或者,您可以运行以下命令以通过.NET CLI安装此软件包。

dotnet add package Microsoft.AspNetCore.Rewrite

在ASP.NET Core中配置静态文件中间件

若要使ASP.NET Core MVC可以提供静态文件,必须配置静态文件中间件。 下面的代码片段说明了如何在Startup类中配置Static Files Middleware。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
   app.UseStaticFiles();
   app.UseEndpoints(endpoints =>
   {
       endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
            endpoints.MapRazorPages();
   });
}

在ASP.NET Core中提供静态文件

您会在wwwroot(content-root / wwwroot)文件夹中找到静态文件。 静态文件存储在名为css,images和js的文件夹中。 所有这些文件夹都位于wwwroot文件夹中,并使用相对路径进行访问。

ASPNET核心静态文件01 IDG

在解决方案资源管理器中查看wwwroot文件夹。

如果您的项目中已经安装并配置了静态文件中间件,则可以使用以下URL访问名为test.png的图像:

http:// localhost:44399 / images / test.png

执行应用程序时,您可以看到Web浏览器中显示的图像。 注意Web浏览器中的URL。

ASPNET核心静态文件02 IDG

市的看法海得拉巴,印度。

现在想象一下,您将不得不提供驻留在wwwroot文件夹之外的静态文件。 假设有一个名为IDGStaticFiles的文件夹,其中包含test.png文件。 以下代码段说明了如何配置静态文件中间件以提供位于wwwroot文件夹之外的文件。

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    app.UseStaticFiles();
    app.UseStaticFiles(new StaticFileOptions()
    {
        FileProvider = new PhysicalFileProvider(
            Path.Combine(Directory.GetCurrentDirectory(),
            @"IDGStaticFiles")),
        RequestPath = new PathString("/StaticFiles")
    });
}

在ASP.NET Core中启用目录浏览

目录浏览是Web应用程序中的一项功能,它使用户可以浏览指定目录中的文件和目录。 请注意,出于安全原因,默认情况下禁用此功能。 您可以通过使用Startup类的Configure方法中的UseDirectoryBrowser扩展方法在ASP.NET Core应用程序中启用目录浏览。

以下代码段说明了如何将启用目录浏览所需的服务添加到请求处理管道。

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

接下来,在Startup类的Configure方法中编写以下代码以使用此中间件。

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
 {
   app.UseStaticFiles();
   app.UseStaticFiles(new StaticFileOptions()
   {
      FileProvider = new PhysicalFileProvider(
      Path.Combine(Directory.GetCurrentDirectory(),
      @"wwwroot")),
      RequestPath = new PathString("/IDGImages")
   });
  app.UseDirectoryBrowser(new DirectoryBrowserOptions()
  {
    FileProvider = new PhysicalFileProvider(
    Path.Combine(Directory.GetCurrentDirectory(), @"wwwroot\images")),
    RequestPath = new PathString("/IDGImages")
    });
 }

运行应用程序并在路径字符串中指定IDGImages时,您将能够看到wwwroot \ images文件夹的内容。

ASPNET核心静态文件03 IDG

目录浏览功能!

ASP.NET Core中的安全文件访问

由于默认情况下没有授权检查,因此如何保护对ASP.NET Core服务的文件的访问? 请注意,wwwroot文件夹中存在的文件是公开可用的。 为了保护这些文件,必须将这些文件移动到其他文件夹,即,移动到wwwroot文件夹之外的文件夹。 最后,要提供这些文件,您可以利用控制器类中的操作方法来返回FileResult实例。

在ASP.NET Core中提供默认页面

最后,您可以利用UseDefaultFiles扩展方法来提供默认页面。 这是在Startup类中配置此扩展方法的方法。

public void Configure(IApplicationBuilder app)
{
    app.UseDefaultFiles();
    app.UseStaticFiles();
}

UseFileServer扩展方法结合了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser扩展方法的功能。 如果您想使用UseFileServer扩展方法来利用这三种功能,则可以在Startup类的Configure方法中编写以下代码。

app.UseFileServer(enableDirectoryBrowsing: true);

From: https://www.infoworld.com/article/3446957/how-to-work-with-static-files-in-aspnet-core.html

cxu0262
关注 关注
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core静态文件使用教程(9)
10-19
主要为大家详细介绍了ASP.NET Core静态文件使用教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
ASP.NET Core静态文件使用方法
01-01
前言 静态文件(HTML,CSS,图片和Javascript之类的资源)会被ASP.NET Core应用直接提供给客户端。 静态文件通常位于网站根目录(web root) <content>/wwwroot文件夹下。通常会把项目的当前目录设置为Content root,这样项目的web root就可以在开发阶段被明确。 public static IWebHostBuilder CreateWebHostBuilder(string[] args) => WebHost.CreateDefaultBuilder(args) .UseContentRoot(Directory
2021-05-19 ASP.NET Core笔试题 ASP.NET Core如何读取静态文件
热门推荐
微软MVP Eleven
05-19 7万+
ASP.NET Core如何读取静态文件? 可以通过间件UseStaticFiles来配置读取静态文件
[dotnetCore2.0]学习笔记之二: ASP.NET Core,如何灵活使用静态文件和加载自定义配置...
weixin_30951231的博客
08-23 136
参考英文原文:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/static-files 本文,只是学习笔记,记录部分知识点!! 对于NetCore2.0的变化,网上资料很多,比如razor page(有点类似于webform那会儿)、统一了标准、增加了一倍多的API、更加好的性能等等 从Program....
.Net Core MVC引入static静态变量到.cshtml页面
醉酒的李白、的博客
08-17 1143
.Net Core MVC引入static静态变量到.cshtml页面 需求背景 笔者最近搭了一个.Net Core Web的框架,但是发布到服务器的子站点了,那么痛点是Ajax请求URL,涉及到本地调试和服务器之间的切换要不要加子站点的问题。 静态变量说明 静态变量并不是说其就不能改变值,不能改变值的量叫常量。 其拥有的值是可变的 ,而且它会保持最新的值。说其静态,是因为它不会随着函数的调用和退出而发生变化。即上次调用函数的时候,如果我们给静态变量赋予某个值的话,下次函数调用时,这个值保持不变。(此段引用
ASP.NET Core Web API使用静态swagger.json文件
dotNET跨平台
01-20 1277
前言ASP.NET Core Web API默认集成了Swashbuckle,可以在运行时显示Swagger UI:而Swagger UI实际上是解析的动态生成的swagger.json:...
(5)ASP.NET Core 静态文件
weixin_30483013的博客
05-24 600
1.前言 当我们创建Core项目的时候,Web根目录下会有个wwwroot文件目录,wwwroot文件目录里面默认有HTML、CSS、IMG、JavaScript文件,而这些文件都是Core提供给客户端使用静态文件。但是这些静态文件需要在Core里面配置才可以对外公开访问。 2.设置静态文件目录 静态文件都存储在Core Web根目录。默认目录是<content_root>...
边学边练【从零开始学习ASP.NET Core】系列之五:访问自定义的静态文件文件
01-15 325
在上一文章实现了通过配置静态文件服务间件访问wwwroot文件静态文件,那么,如果我们想访问不是这个目录静态文件又该如何处理呢? 在项目新建一个Public文件夹,也在里面创建一个Images文件夹,同样我们存放些照片进去,为了避免混淆,我们放不同的照片进去,这里照片名字是csdn.png。 要想访问Pubic文件静态文件,我们又需要去Startup.cs文件去配置一下,让系统支持这个功能。 public class Startup { publi
NetCore入门篇:(五)Net Core项目使用静态文件
weixin_34318326的博客
05-03 205
一、简介 1、NetCore默认无法访问静态文件,需要在Startup通过代码添加定义。 2、本文介绍两种静态文件目录实现方式。 二、启用默认目录 1、添加图片文件 2、测试访问结果(不能访问) 3、添加定义代码。 4、刷新图片查看结果(正常访问)。 这里有个知识点,我一般使用浏览模式访问,而非F5运行,好处是可以修改代码,NetCore在修改代码之后,刷新访问会...
ASP.NET Core 静态文件
windowsliusheng的专栏
05-16 314
1.在ASP.NET Core静态文件默认是在“wwwroot”文件夹下,静态文件组件默认是不会提供授权检查。 如何给默认文件授权呢? 将文件保存在wwwroot外,并将目录设置为可被静态文件间件访问到,通过controller action访问,通过授权后返回FileResult。 [Route("[controller]/[action]")] [AuthorizeFilter] public class UploadController : Controller {
如何在ASP.NET Core类库项目读取配置文件详解
10-19
主要给大家介绍了关于如何在ASP.NET Core类库项目读取配置文件的相关资料,这是朋友提的一个问题,文通过示例代码介绍的非常详解,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起...
ASP.NET Core 应用程序静态文件间件的实现
10-15
主要介绍了ASP.NET Core 应用程序静态文件间件的实现,文通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
ASP.NET Core预压缩静态文件的方法步骤
01-20
这篇博客文章展示了如何在ASP.NET Core预压缩静态文件。 下面话不多说了,来一起看看详细的介绍吧 为什么需要预压缩文件? 虽然在从服务器请求文件时, 我们可以动态压缩文件,但这意味这Web服务器需要做更多的...
ASP.NET Core MVC 笔记
weixin_44877917的博客
08-24 347
ASP.NET Core MVC 1,间件 1.0 环境设置 IWebHostEnvironment 获取应用运行环境《开发环境,生产环境,测试环境》 env.IsProduction() 生产环境 env.IsDevelopment 开发环境 env.IsStaging() 测试环境 env.IsEnvironment(“IntergratIontest”); 自定义环境 ​ 自定义环境,通过 env.EnvironmentName 获取环境的名称 1.1 访问静态文件 net
Vue3实战笔记(52)—Vue 3封装持仓分析饼图
山花的博客
05-30 630
接上文,封装持仓分析饼图。封装好几个组件,用于后续开发。把忧愁煮成茶,让它在心间慢慢沉淀,剩下的,便是清甜的回味。
Vue3 - 实现一个雨水滴落的动画效果
良月柒
05-29 203
在 Vue 3 实现一个雨水滴落的动画效果,可以使用 HTML5 的元素和 JavaScript 来绘制和控制动画。
React后台管理(十三)-- 页面常用hook封装 --- useTable封装
weixin_43883615的博客
05-29 505
紧接上一篇,本篇主要讲和表格相关的全局hook函数封装。结构分析:(1)这个 useTable 钩子的功能是用于管理表格的高度(2)接受一个可选的 params 对象作为参数,可以包含 id 和 offset 两个属性(3)定义getHeight函数,实时计算表格区域高度,控制滚动区域下一篇讲【示例页面构建教学】。关注本栏目,将实时更新。
KeyExpirationEventMessageListener监听器的使用
最新发布
qq_47910339的博客
05-31 478
KeyExpirationEventMessageListener监听器的使用
vue 笔记03
m0_47045804的博客
05-30 916
vue挂载以后把所有内容手抄一份就叫做虚拟dom 假设你要操作dom 等一下先不要操作真实dom, 先修改我这个手抄的虚拟的DOM 改完了么?如果我们需要一个变量 这个变量的值是根据data里面某个值或者某几个值的变化而变化的时候,那么我们就需要用到vue里面的computed计算属性。data里面定义的数据无法直接互相访问 因为加载到data的时候还没有产生当前的vue对象。return 返回的结果就是当前计算属性的值。回调函数的参数就是过滤原本的值return 返回过滤的新值。
IIS配置访问asp.net core 静态资源文件
07-28
要配置IIS以访问ASP.NET Core静态资源文件,您可以按照以下步骤进行操作: 1. 打开您的ASP.NET Core项目的 `Startup.cs` 文件。 2. 在 `Configure` 方法,将以下代码添加到 `app.UseStaticFiles()` 之前: ``...

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 什么是COBOL? COBOL编程说明 9849
  • 什么是PyPy? 更快的Python而无痛苦 8544
  • api管理工具_10种最佳API管理工具 8227
  • Julia教程:Julia语言入门 7155
  • python 异步处理_开始使用Python进行异步处理 6806

大家在看

  • 【聚星文社】用Midjourney批量制作小说推文视频,最强MJ推文工具!
  • 主成分分析PCA
  • 双指针基础知识
  • 【粉丝福利社】Photoshop2024从入门到精通(全彩印刷)(文末送书-进行中) 253
  • Java Web学习笔记6——盒子模型 152

最新文章

  • Python 3.9:新功能和更好的功能
  • c# .net 微软证书_微软透露C#9.0计划
  • gitlab 12.0.3_GitLab 13.0强调安全性
2020年1884篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

聚圣源心有灵犀游戏规则王能起名微信网名起什么姓方的男孩起名字大全2021女孩子起名苦海无涯韫色过浓小说地板公司起名马氏名字起名女孩黑夜给了我黑色的眼睛饭店起什么名字免费西游记目录物流公司名称起名大全起户营业执照名称大全领袖电视剧被盗车辆查询辰巳唯蝴蝶辨别食物味道用身体哪个部位索马里120天旭字起名男孩叠字取名起名大全王婿叶凡智能科技公司起名振字起名xxdm观音菩萨的图片百比起名网罗家伦八字起名大全男孩女孩起名字叫什么好听淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男孩疑遭霸凌 家长讨说法被踢出群国产伟哥去年销售近13亿网友建议重庆地铁不准乘客携带菜筐雅江山火三名扑火人员牺牲系谣言代拍被何赛飞拿着魔杖追着打月嫂回应掌掴婴儿是在赶虫子山西高速一大巴发生事故 已致13死高中生被打伤下体休学 邯郸通报李梦为奥运任务婉拒WNBA邀请19岁小伙救下5人后溺亡 多方发声王树国3次鞠躬告别西交大师生单亲妈妈陷入热恋 14岁儿子报警315晚会后胖东来又人满为患了倪萍分享减重40斤方法王楚钦登顶三项第一今日春分两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?周杰伦一审败诉网易房客欠租失踪 房东直发愁男子持台球杆殴打2名女店员被抓男子被猫抓伤后确诊“猫抓病”“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火男孩8年未见母亲被告知被遗忘恒大被罚41.75亿到底怎么缴网友洛杉矶偶遇贾玲杨倩无缘巴黎奥运张立群任西安交通大学校长黑马情侣提车了西双版纳热带植物园回应蜉蝣大爆发妈妈回应孩子在校撞护栏坠楼考生莫言也上北大硕士复试名单了韩国首次吊销离岗医生执照奥巴马现身唐宁街 黑色着装引猜测沈阳一轿车冲入人行道致3死2伤阿根廷将发行1万与2万面值的纸币外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万手机成瘾是影响睡眠质量重要因素春分“立蛋”成功率更高?胖东来员工每周单休无小长假“开封王婆”爆火:促成四五十对专家建议不必谈骨泥色变浙江一高校内汽车冲撞行人 多人受伤许家印被限制高消费

聚圣源 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化