ASP.NET?Core中的wwwroot文件夾
ASP.NET Core中wwwroot文件夾
默認(rèn)情況下,ASP.NET Core應(yīng)用程序中的wwwroot文件夾被視為webroot文件夾,并且該文件夾或目錄應(yīng)位于根項(xiàng)目文件夾中。 在ASP.NET Core應(yīng)用程序中,靜態(tài)文件可以存儲(chǔ)在webroot文件夾下的任何文件夾中,并且可以使用指向該根目錄的相對路徑進(jìn)行訪問。
添加wwwroot(webroot)文件夾
當(dāng)使用Web和MVC模板創(chuàng)建ASP.NET Core Web應(yīng)用程序時(shí),默認(rèn)情況下,該文件夾(wwwroot)在根項(xiàng)目文件夾中創(chuàng)建。 但是,如果使用空模板創(chuàng)建新的.NET Core應(yīng)用程序,則默認(rèn)情況下,Visual Studio將不會(huì)創(chuàng)建此文件夾。
現(xiàn)在, 讓我們使用Empty項(xiàng)目模板來創(chuàng)建一個(gè)ASP.NET Core應(yīng)用程序, 然后了解如何添加wwwroot文件夾。
為了添加wwwroot文件夾,右鍵單擊項(xiàng)目,然后選擇 添加 => 新建文件夾 選項(xiàng),然后將文件夾名稱提供為wwwroot。 創(chuàng)建文件夾后,請如下所示查看文件夾符號。
在早期的ASP.NET應(yīng)用程序中,可以從項(xiàng)目根文件夾或它下面的任何其他文件夾提供靜態(tài)文件。 但這已在ASP.NET Core中更改。
現(xiàn)在,只能通過HTTP請求為webroot – wwwroot文件夾或其下的任何子文件夾中的文件提供服務(wù)。
其他所有文件均被阻止,默認(rèn)情況下無法提供。 但是,如果您愿意,還可以更改此默認(rèn)行為。
通常,wwwroot文件夾內(nèi)應(yīng)有用于不同類型的靜態(tài)文件的單獨(dú)文件夾,例如JavaScript,CSS,圖像,庫腳本等,如下所示:
現(xiàn)在,您可以使用基本URL和文件名訪問靜態(tài)文件,例如CSS,js,lib。
例如,您可以通過https:// localhost: /js/site.js訪問js文件夾中的上述site.js文件。
注意:為了提供靜態(tài)文件,您需要在Startup.cs文件的“ Configure()”方法中包括app.UseStaticFiles()中間件組件。
wwwroot可以重命名嗎?
是的。 您可以根據(jù)自己的選擇將wwwroot文件夾重命名為任何其他名稱,并在準(zhǔn)備Program.cs文件中的托管環(huán)境時(shí)將其設(shè)置為webroot。
例如,讓我們將wwwroot文件夾重命名為“ MyRoot”文件夾。
將wwwroot文件夾重命名為MyRoot之后,您需要調(diào)用UseWebRoot()方法以將MyRoot文件夾配置為Program類的Main()方法中的webroot文件夾,如下所示。
如何訪問wwwroot文件夾?
如上所示, 我們可以創(chuàng)建基于自身重命名的文件夾, 也可以使用wwwroot文件夾, 接下來, 我們在MyRoot文件夾當(dāng)中,添加一個(gè)index.html文件, 并且修改html當(dāng)中的內(nèi)容, 如下所示。
然后,啟動(dòng)應(yīng)用程序, 當(dāng)創(chuàng)建的是默認(rèn)的Empty模板的程序,試圖訪問根文件夾下的index.html,如下所示。
之所以沒有像預(yù)期的那樣獲取輸出,因?yàn)槲覀儧]有任何中間件可以為請求處理管道中的靜態(tài)文件服務(wù)。
如何配置靜態(tài)文件中間件?
為了處理靜態(tài)資源,我們需要在應(yīng)用程序的應(yīng)用程序請求處理管道中配置一個(gè)名為 UseStaticFiles() 中間件件。
UseStaticFiles()中間件是由框架提供的內(nèi)置中間件ASP.NET用于處理核心應(yīng)用程序中的靜態(tài)ASP.NET文件。
讓我們修改Startup中的Configure方法,將 UseStaticFiles()中間件添加到應(yīng)用程序的請求處理管道中, 如下所示。
接下來將按預(yù)期方式看到輸出,如下圖所示。
現(xiàn)在,如果從 URL 中刪除 index.html ,將提示找不到此localhost頁面, 但是,我們想要的是,當(dāng)我們導(dǎo)航到上文所示的URL 時(shí),我們希望我們的 index.html 頁面能夠滿足請求。
也就是說,我們需要將 index.html 頁面設(shè)置為默認(rèn)頁面。
如何設(shè)置默認(rèn)頁面?
大多數(shù)Web應(yīng)用程序都有一個(gè)默認(rèn)頁面,例如index.html或default.html作為啟動(dòng)頁面,因?yàn)樗苋菀子涀 ?/p>
當(dāng)用戶訪問該應(yīng)用程序的根URL時(shí),將顯示該網(wǎng)頁。 例如,如果您有一個(gè)名為index.html的頁面,并且希望將該頁面作為默認(rèn)頁面,以便每當(dāng)任何用戶訪問您的根URL時(shí),都將顯示該頁面。
為了將位于wwwroot文件夾中的index.html頁面作為應(yīng)用程序的默認(rèn)頁面提供服務(wù),您需要向請求處理管道中添加另一個(gè)中間件,即UseDefaultFiles()中間件。
因此,如下所示修改Startup類的Configure()方法以使用UseDefaultFiles()中間件,該中間件將為您的應(yīng)用程序設(shè)置默認(rèn)頁面。
注意:您需要在UseStaticFiles()中間件之前添加UseDefaultFiles()中間件,以便提供默認(rèn)文件。 您需要記住的一點(diǎn)是UseDefaultFiles()中間件只是URL重寫器,它永遠(yuǎn)不會(huì)提供靜態(tài)文件。 該中間件的工作是簡單地將傳入U(xiǎn)RL重寫為默認(rèn)文件,然后由靜態(tài)文件中間件提供服務(wù)。
如何將“自定義HTML頁”設(shè)置為默認(rèn)頁面?
UseDefaultFiles()中間件將在wwwroot文件夾中搜索以下文件:
- index.htm
- index.html
- default.htm
- default.html
這是默認(rèn)行為。 但是,如果您愿意,還可以更改此默認(rèn)行為。 例如,讓我們將另一個(gè)HTML頁面添加到項(xiàng)目wwwroot文件夾中,其名稱為Page1.html。
添加Page1.html文件后,wwwroot文件夾將包含兩個(gè)HTML文件,如下圖所示。
將Page1.html設(shè)置為默認(rèn)頁面:
現(xiàn)在,我們希望Page1.html頁面成為我們的默認(rèn)頁面,而不是index.html頁面。 為此,您需要按如下所示修改Startup類的Configure()方法。
在這里,我們將創(chuàng)建DefaultFilesOptions類的實(shí)例,并將默認(rèn)文件名添加為Page1.html,然后將此對象傳遞給UseDefaultFiles中間件。
UseFileServer()中間件組件的用途是什么?
UseFileServer()中間件組件結(jié)合了UseStaticFiles,UseDefaultFiles和UseDirectoryBrowser中間件的功能。
我們已經(jīng)討論了UseStaticFiles和UseDefaultFiles中間件。 顧名思義,DirectoryBrowser中間件啟用了目錄瀏覽,使用戶可以查看存儲(chǔ)在特定目錄中的文件。
在我們的示例中,我們可以使用UseFileServer()中間件替換UseStaticFiles()和UseDefaultFiles()中間件,如下所示。
到此這篇關(guān)于ASP.NET Core中的wwwroot文件夾的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- ASP.NET Core基礎(chǔ)之請求處理管道
- ASP.NET Core基礎(chǔ)之中間件
- ASP.NET Core應(yīng)用程序配置文件AppSetting.json
- ASP.NET?Core基礎(chǔ)之Startup類
- ASP.NET Core基礎(chǔ)之啟動(dòng)設(shè)置
- ASP.NET?Core托管模型CreateDefaultBuilder()方法
- ASP.NET?Core基礎(chǔ)之Main方法講解
- ASP.NET?Core開發(fā)環(huán)境安裝配置
- ASP.NET?CORE基礎(chǔ)教程
- ASP.NET?Core中Startup類、Configure()方法及中間件詳解
- ASP.NET?Core的中間件與管道介紹
相關(guān)文章
ASP.NET MVC把數(shù)據(jù)庫中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字
這篇文章介紹了ASP.NET MVC把數(shù)據(jù)庫中枚舉項(xiàng)的數(shù)字轉(zhuǎn)換成文字的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-10-10如何在WebForm中使用javascript防止連打(雙擊)
如何在WebForm中使用javascript防止連打(雙擊)...2007-01-01C#Web應(yīng)用程序入門經(jīng)典學(xué)習(xí)筆記之一
C#Web應(yīng)用程序入門經(jīng)典學(xué)習(xí)筆記之一...2006-08-08創(chuàng)建ASP.NET?Core?Web應(yīng)用程序并介紹項(xiàng)目模板
這篇文章介紹了創(chuàng)建ASP.NET?Core?Web應(yīng)用程序的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02asp.net(C#) Access 數(shù)據(jù)操作類
asp.net(C#) Access 數(shù)據(jù)操作類 實(shí)現(xiàn)代碼,有需要這方面的朋友可以熟悉下。2009-06-06ASP.NET?Core中的Configuration配置一
這篇文章介紹了ASP.NET?Core中的Configuration配置,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-04-04