随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NET Core MVC 系统开发的人员。经过前几篇文章的讲解,初步了解ASP.NET Core MVC项目创建,启动运行,以及命名约定,创建控制器,视图,模型,接收参数,传递数据,路由,页面布局等内容,今天继续讲解ASP.NET Core MVC wwwroot和客户端库等相关内容,仅供学习分享使用。
(相关资料图)
wwwroot文件夹概述
通过模板创建的ASP.NET Core MVC项目,会在程序根目录创建一个wwwroot文件夹。此文件夹又称为webroot文件夹,主要用于存放静态资源文件,如:html,JavaScript,css样式等内容。默认情况下,存在wwwroot文件夹下的所有静态资源都可以通过Http请求提供服务。在新的框架中,且只有存放于wwwroot目录下的静态资源可以直接通过Http访问,其他目录下的静态资源都将阻止。
静态资源中间件
为了使wwwroot目录下的静态资源能够被Http直接访问,需要在程序启动时【Program.cs】加载静态资源中间件。如下所示:
1 var builder = WebApplication.CreateBuilder(args); 2 3 // Add services to the container. 4 builder.Services.AddControllersWithViews(); 5 6 var app = builder.Build(); 7 8 // Configure the HTTP request pipeline. 9 if (!app.Environment.IsDevelopment())10 {11 app.UseExceptionHandler("/Home/Error");12 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.13 app.UseHsts();14 }15 16 app.UseHttpsRedirection();17 18 //1. 启动静态资源服务中间件19 app.UseStaticFiles();20 21 app.UseRouting();22 23 app.UseAuthorization();24 25 app.MapControllerRoute(26 name: "default",27 pattern: "{controller=Home}/{action=Index}/{id?}");28 29 app.Run();
静态资源示例
创建程序后,直接运行,会通过路由设置,默认加载Home/Index页面,如下所示:
在wwwroot目录下,创建index.html,内容如下所示:
1 2 3 4 5静态首页 6 7 8公子小六
9这是静态首页
10 11
在Program.cs启动文件中,添加默认文件中间件【app.UseDefaultFiles();】,如下所示:
1 var builder = WebApplication.CreateBuilder(args); 2 // Add services to the container. 3 builder.Services.AddControllersWithViews(); 4 var app = builder.Build(); 5 // Configure the HTTP request pipeline. 6 if (!app.Environment.IsDevelopment()) 7 { 8 app.UseExceptionHandler("/Home/Error"); 9 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.10 app.UseHsts();11 }12 app.UseHttpsRedirection();13 14 15 //0. 允许默认文件映射16 app.UseDefaultFiles();17 //1. 启动静态资源服务中间件18 app.UseStaticFiles();19 20 21 app.UseRouting();22 app.UseAuthorization();23 app.MapControllerRoute(24 name: "default",25 pattern: "{controller=Home}/{action=Index}/{id?}");26 27 app.Run();
再次运行程序,会发现静态默认首页Index.html会替换之前默认的Home/Index路由视图,如下所示:
通过以上示例得出在结论:默认静态资源首页优先级高于默认路由。
修改默认资源名称
默认启动静态资源名称为Index.html,可以通过DefaultFilesOptions指定默认的首页加载顺序和名称。如下所示:
1 var builder = WebApplication.CreateBuilder(args); 2 // Add services to the container. 3 builder.Services.AddControllersWithViews(); 4 var app = builder.Build(); 5 // Configure the HTTP request pipeline. 6 if (!app.Environment.IsDevelopment()) 7 { 8 app.UseExceptionHandler("/Home/Error"); 9 // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.10 app.UseHsts();11 }12 app.UseHttpsRedirection();13 14 //默认文件启动项15 DefaultFilesOptions options = new DefaultFilesOptions();16 options.DefaultFileNames.Add("Hello.html");17 //0. 允许默认文件映射18 app.UseDefaultFiles(options);19 20 //1. 启动静态资源服务中间件21 app.UseStaticFiles();22 23 app.UseRouting();24 app.UseAuthorization();25 app.MapControllerRoute(26 name: "default",27 pattern: "{controller=Home}/{action=Index}/{id?}");28 29 app.Run();
修改后再次启动,发现加载的依然是Index.html,而不是Hello.html。经过调试发现,DefaultFilesOptions的默认加载页面,会自动填充4个默认页面名称。后面添加的页面名称会在原有默认页面之后。如下所示:
经过以上分析,删除默认的index.html页面,重新启动,默认首页变成了Hello.html页面,如下所示:
静态资源文件除了可以通过静态资源中间件来实现【app.UseStaticFiles()】,还可以通过文件服务中间件来实现,如下所示:
1 FileServerOptions options = new FileServerOptions();2 options.DefaultFilesOptions.DefaultFileNames.Add("Hello.html");3 app.UseFileServer(options);
修改静态资源目录
默认的静态资源目录为wwwroot,一般也是通用的webroot文件夹名称,如果需要修改成其他目录 ,可以通过WebApplication.CreateBuilder(options)中的选项进行修改,接线所示:
1 WebApplicationOptions weboptions = new WebApplicationOptions() { WebRootPath="wwwroot2" };2 var builder = WebApplication.CreateBuilder(weboptions);
修改后,重新运行程序,如下所示:
注意:为了让wwwroot2生效,必须修改原有的wwwrooot文件名称或者删除wwwroot文件夹,否则wwwroot2将不生效。
客户端库
客户端库主要是指JavaScript,CSS等第三方库,在ASP.NET Core MVC项目中,安装客户端库如下所示:
在项目名称处右键,选择添加,客户端库,如下所示:
在打开的客户端库添加窗口,可以选择需要的库名称,进行搜索,然后进行安装即可,如下所示:
安装成功后,在目标位置即可进行查看,如下所示:
以上就是关于ASP.NET Core MVC项目中wwwroot和客户端库相关内容。关于客户端库在安装成功后,如何在页面中引用,将在后续章节中进行介绍。
标签:
- ASP.NET Core MVC 从入门到精通之wwwroot和客户端库-全球短讯
- 天天报道:贵航股份最新公告:一季度净利润3325.13万元 同比下降3.17%
- 财通证券给予益生股份增持评级 公司业绩逐季改善 种鸡龙头弹性可期 视讯
- 金一文化:截至本公告日 钟葱累计质押股数约为6073万股
- 【世界播资讯】毕得医药:2022年净利润同比增长49.6% 拟10转4派15.4元
- 牛油果吃剩一半怎么保存?_天天快播报
- 福航环保2022年净利1261.49万同比下滑65.88% 新增订单减少_世界微动态
- 全球速读:利源捷能2022年净利365.67万同比增长458.67% 油田注气业务增多
- 富岛科技2022年亏损114.23万同比由盈转亏 订单量下降
- 别再穿阔腿裤了!时髦又百搭的“初恋裤”来了,谁穿谁减龄! 天天最新
- 冠农股份: 新疆冠农股份有限公司2022年年度利润分配方案公告
- 时讯:联赢激光: 深圳市联赢激光股份有限公司2022年年度利润分配预案公告
- 热点在线丨大连重工: 关于2022年度利润分配预案的公告
- 观焦点:中油工程: 中油工程2022年度利润分配预案
- 北京:通勤定制快巴试点向环京周边地区覆盖
- 好评中国丨融通古今,点亮中华文化自信之灯
- 天天观速讯丨【央广时评】“中国第一展”万商云集 尽显开放决心、发展信心
- 期待一场属于青春的盛会 ——写在第31届世界大学生夏季运动会倒计时100天之际
- 线上点单,线下服务,“互联网+护理”在家就能让专业护士上门|当前资讯
- 中国电信一季度产业数字化收入约350亿元 同比增长近两成_天天微头条
- 快看点丨光违约金就达20亿!四巨头混战广州土拍,华润置地百亿夺长隆超级地块
- 热点!鏖战7小时!197亿巨无霸!长隆万博热到炸!
- 戏剧收官,华润联合体斥巨资拿下长隆万博“巨无霸”|独家
- 兵出四路 中国三人女篮下月起开始“抢”巴黎奥运积分
- 国安队主帅斯坦利:补时被扳平比分难以接受
- 《崩坏星穹铁道》桑博星魂值得抽吗桑博星魂效果介绍-天天热讯
- 滚动:百瑞赢收评:大盘调整 注意风险
- 海正药业今年一季度净利润增长71.91%_每日热议
- 嘉峪关附近的旅游景点(嘉峪关旅游景点介绍)|环球看点
- 激励人心正能量的句子学生(激励人心正能量的句子) 新资讯
- 1 金一文化:截至本公告日 钟葱累计质押股数约为6073万股
- 2 全球速读:利源捷能2022年净利365.67万同比增长458.67% 油田注气业务增多
- 3 热点在线丨大连重工: 关于2022年度利润分配预案的公告
- 4 天天观速讯丨【央广时评】“中国第一展”万商云集 尽显开放决心、发展信心
- 5 热点!鏖战7小时!197亿巨无霸!长隆万博热到炸!
- 6 兵出四路 中国三人女篮下月起开始“抢”巴黎奥运积分
- 7 国安队主帅斯坦利:补时被扳平比分难以接受
- 8 激励人心正能量的句子学生(激励人心正能量的句子) 新资讯
- 9 一季度我国吸收外资同比增长4.9%
- 10 公共 | 书香进景区 陕西省图书馆诗经里小镇分馆揭牌