隨著技術(shù)的發(fā)展,ASP.NET Core MVC也推出了好長時(shí)間,經(jīng)過不斷的版本更新迭代,已經(jīng)越來越完善,本系列文章主要講解ASP.NET Core MVC開發(fā)B/S系統(tǒng)過程中所涉及到的相關(guān)內(nèi)容,適用于初學(xué)者,在校畢業(yè)生,或其他想從事ASP.NET Core MVC 系統(tǒng)開發(fā)的人員。經(jīng)過前幾篇文章的講解,初步了解ASP.NET Core MVC項(xiàng)目創(chuàng)建,啟動(dòng)運(yùn)行,以及命名約定,創(chuàng)建控制器,視圖,模型,接收參數(shù),傳遞數(shù)據(jù),路由,頁面布局等內(nèi)容,今天繼續(xù)講解ASP.NET Core MVC wwwroot和客戶端庫等相關(guān)內(nèi)容,僅供學(xué)習(xí)分享使用。
(相關(guān)資料圖)
wwwroot文件夾概述
通過模板創(chuàng)建的ASP.NET Core MVC項(xiàng)目,會(huì)在程序根目錄創(chuàng)建一個(gè)wwwroot文件夾。此文件夾又稱為webroot文件夾,主要用于存放靜態(tài)資源文件,如:html,JavaScript,css樣式等內(nèi)容。默認(rèn)情況下,存在wwwroot文件夾下的所有靜態(tài)資源都可以通過Http請求提供服務(wù)。在新的框架中,且只有存放于wwwroot目錄下的靜態(tài)資源可以直接通過Http訪問,其他目錄下的靜態(tài)資源都將阻止。
靜態(tài)資源中間件
為了使wwwroot目錄下的靜態(tài)資源能夠被Http直接訪問,需要在程序啟動(dòng)時(shí)【Program.cs】加載靜態(tài)資源中間件。如下所示:
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. 啟動(dòng)靜態(tài)資源服務(wù)中間件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();
靜態(tài)資源示例
創(chuàng)建程序后,直接運(yùn)行,會(huì)通過路由設(shè)置,默認(rèn)加載Home/Index頁面,如下所示:
在wwwroot目錄下,創(chuàng)建index.html,內(nèi)容如下所示:
1 2 3 4 5靜態(tài)首頁 6 7 8公子小六
9這是靜態(tài)首頁
10 11
在Program.cs啟動(dòng)文件中,添加默認(rèn)文件中間件【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. 允許默認(rèn)文件映射16 app.UseDefaultFiles();17 //1. 啟動(dòng)靜態(tài)資源服務(wù)中間件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();
再次運(yùn)行程序,會(huì)發(fā)現(xiàn)靜態(tài)默認(rèn)首頁Index.html會(huì)替換之前默認(rèn)的Home/Index路由視圖,如下所示:
通過以上示例得出在結(jié)論:默認(rèn)靜態(tài)資源首頁優(yōu)先級高于默認(rèn)路由。
修改默認(rèn)資源名稱
默認(rèn)啟動(dòng)靜態(tài)資源名稱為Index.html,可以通過DefaultFilesOptions指定默認(rèn)的首頁加載順序和名稱。如下所示:
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 //默認(rèn)文件啟動(dòng)項(xiàng)15 DefaultFilesOptions options = new DefaultFilesOptions();16 options.DefaultFileNames.Add("Hello.html");17 //0. 允許默認(rèn)文件映射18 app.UseDefaultFiles(options);19 20 //1. 啟動(dòng)靜態(tài)資源服務(wù)中間件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();
修改后再次啟動(dòng),發(fā)現(xiàn)加載的依然是Index.html,而不是Hello.html。經(jīng)過調(diào)試發(fā)現(xiàn),DefaultFilesOptions的默認(rèn)加載頁面,會(huì)自動(dòng)填充4個(gè)默認(rèn)頁面名稱。后面添加的頁面名稱會(huì)在原有默認(rèn)頁面之后。如下所示:
經(jīng)過以上分析,刪除默認(rèn)的index.html頁面,重新啟動(dòng),默認(rèn)首頁變成了Hello.html頁面,如下所示:
靜態(tài)資源文件除了可以通過靜態(tài)資源中間件來實(shí)現(xiàn)【app.UseStaticFiles()】,還可以通過文件服務(wù)中間件來實(shí)現(xiàn),如下所示:
1 FileServerOptions options = new FileServerOptions();2 options.DefaultFilesOptions.DefaultFileNames.Add("Hello.html");3 app.UseFileServer(options);
修改靜態(tài)資源目錄
默認(rèn)的靜態(tài)資源目錄為wwwroot,一般也是通用的webroot文件夾名稱,如果需要修改成其他目錄 ,可以通過WebApplication.CreateBuilder(options)中的選項(xiàng)進(jìn)行修改,接線所示:
1 WebApplicationOptions weboptions = new WebApplicationOptions() { WebRootPath="wwwroot2" };2 var builder = WebApplication.CreateBuilder(weboptions);
修改后,重新運(yùn)行程序,如下所示:
注意:為了讓wwwroot2生效,必須修改原有的wwwrooot文件名稱或者刪除wwwroot文件夾,否則wwwroot2將不生效。
客戶端庫
客戶端庫主要是指JavaScript,CSS等第三方庫,在ASP.NET Core MVC項(xiàng)目中,安裝客戶端庫如下所示:
在項(xiàng)目名稱處右鍵,選擇添加,客戶端庫,如下所示:
在打開的客戶端庫添加窗口,可以選擇需要的庫名稱,進(jìn)行搜索,然后進(jìn)行安裝即可,如下所示:
安裝成功后,在目標(biāo)位置即可進(jìn)行查看,如下所示:
以上就是關(guān)于ASP.NET Core MVC項(xiàng)目中wwwroot和客戶端庫相關(guān)內(nèi)容。關(guān)于客戶端庫在安裝成功后,如何在頁面中引用,將在后續(xù)章節(jié)中進(jìn)行介紹。
標(biāo)簽:
- ASP.NET Core MVC 從入門到精通之wwwroot和客戶端庫-全球短訊
- 天天報(bào)道:貴航股份最新公告:一季度凈利潤3325.13萬元 同比下降3.17%
- 財(cái)通證券給予益生股份增持評級 公司業(yè)績逐季改善 種雞龍頭彈性可期 視訊
- 金一文化:截至本公告日 鐘蔥累計(jì)質(zhì)押股數(shù)約為6073萬股
- 【世界播資訊】畢得醫(yī)藥:2022年凈利潤同比增長49.6% 擬10轉(zhuǎn)4派15.4元
- 牛油果吃剩一半怎么保存?_天天快播報(bào)
- 福航環(huán)保2022年凈利1261.49萬同比下滑65.88% 新增訂單減少_世界微動(dòng)態(tài)
- 全球速讀:利源捷能2022年凈利365.67萬同比增長458.67% 油田注氣業(yè)務(wù)增多
- 富島科技2022年虧損114.23萬同比由盈轉(zhuǎn)虧 訂單量下降
- 別再穿闊腿褲了!時(shí)髦又百搭的“初戀褲”來了,誰穿誰減齡! 天天最新
- 冠農(nóng)股份: 新疆冠農(nóng)股份有限公司2022年年度利潤分配方案公告
- 時(shí)訊:聯(lián)贏激光: 深圳市聯(lián)贏激光股份有限公司2022年年度利潤分配預(yù)案公告
- 熱點(diǎn)在線丨大連重工: 關(guān)于2022年度利潤分配預(yù)案的公告
- 觀焦點(diǎn):中油工程: 中油工程2022年度利潤分配預(yù)案
- 北京:通勤定制快巴試點(diǎn)向環(huán)京周邊地區(qū)覆蓋
- 好評中國丨融通古今,點(diǎn)亮中華文化自信之燈
- 天天觀速訊丨【央廣時(shí)評】“中國第一展”萬商云集 盡顯開放決心、發(fā)展信心
- 期待一場屬于青春的盛會(huì) ——寫在第31屆世界大學(xué)生夏季運(yùn)動(dòng)會(huì)倒計(jì)時(shí)100天之際
- 線上點(diǎn)單,線下服務(wù),“互聯(lián)網(wǎng)+護(hù)理”在家就能讓專業(yè)護(hù)士上門|當(dāng)前資訊
- 中國電信一季度產(chǎn)業(yè)數(shù)字化收入約350億元 同比增長近兩成_天天微頭條
- 快看點(diǎn)丨光違約金就達(dá)20億!四巨頭混戰(zhàn)廣州土拍,華潤置地百億奪長隆超級地塊
- 熱點(diǎn)!鏖戰(zhàn)7小時(shí)!197億巨無霸!長隆萬博熱到炸!
- 戲劇收官,華潤聯(lián)合體斥巨資拿下長隆萬博“巨無霸”|獨(dú)家
- 兵出四路 中國三人女籃下月起開始“搶”巴黎奧運(yùn)積分
- 國安隊(duì)主帥斯坦利:補(bǔ)時(shí)被扳平比分難以接受
- 《崩壞星穹鐵道》桑博星魂值得抽嗎桑博星魂效果介紹-天天熱訊
- 滾動(dòng):百瑞贏收評:大盤調(diào)整 注意風(fēng)險(xiǎn)
- 海正藥業(yè)今年一季度凈利潤增長71.91%_每日熱議
- 嘉峪關(guān)附近的旅游景點(diǎn)(嘉峪關(guān)旅游景點(diǎn)介紹)|環(huán)球看點(diǎn)
- 激勵(lì)人心正能量的句子學(xué)生(激勵(lì)人心正能量的句子) 新資訊
- 1 金一文化:截至本公告日 鐘蔥累計(jì)質(zhì)押股數(shù)約為6073萬股
- 2 全球速讀:利源捷能2022年凈利365.67萬同比增長458.67% 油田注氣業(yè)務(wù)增多
- 3 熱點(diǎn)在線丨大連重工: 關(guān)于2022年度利潤分配預(yù)案的公告
- 4 天天觀速訊丨【央廣時(shí)評】“中國第一展”萬商云集 盡顯開放決心、發(fā)展信心
- 5 熱點(diǎn)!鏖戰(zhàn)7小時(shí)!197億巨無霸!長隆萬博熱到炸!
- 6 兵出四路 中國三人女籃下月起開始“搶”巴黎奧運(yùn)積分
- 7 國安隊(duì)主帥斯坦利:補(bǔ)時(shí)被扳平比分難以接受
- 8 激勵(lì)人心正能量的句子學(xué)生(激勵(lì)人心正能量的句子) 新資訊
- 9 一季度我國吸收外資同比增長4.9%
- 10 公共 | 書香進(jìn)景區(qū) 陜西省圖書館詩經(jīng)里小鎮(zhèn)分館揭牌