ASP.NET?Core6.0-wwwroot文件夾無(wú)法訪問(wèn)解決方法
默認(rèn)情況下,ASP.NET Core項(xiàng)目中的wwwroot文件夾被視為Web根文件夾。靜態(tài)文件可以存儲(chǔ)在Web根目錄下的任何文件夾中,并可以使用該根目錄的相對(duì)路徑進(jìn)行訪問(wèn)。在ASP.NET應(yīng)用程序中,可以從應(yīng)用程序的根文件夾或其下的任何其他文件夾提供靜態(tài)文件。這已在ASP.NET Core中更改?,F(xiàn)在,只有Web根目錄-wwwroot文件夾中的那些文件才能通過(guò)http請(qǐng)求提供。其他所有文件均被阻止,默認(rèn)情況下無(wú)法提供。通常,在wwwroot文件夾中應(yīng)有用于不同類(lèi)型的靜態(tài)文件(例如JavaScript,CSS,圖像,庫(kù)腳本等)的單獨(dú)文件夾,如下所示。

但是,如果想要靜態(tài)文件能夠被正常訪問(wèn)到,我們還必須在Startup.cs中配置中間件以將靜態(tài)文件添加到管道中。將對(duì)Microsoft.AspNetCore.StaticFiles包的依賴項(xiàng)添加到項(xiàng)目中,然后Startup.Configure調(diào)用擴(kuò)展方法UseStaticFiles:

重命名wwwroot文件夾
我們可以根據(jù)自己的選擇將wwwroot文件夾重命名為任何其他名稱(chēng),并在program.cs中準(zhǔn)備托管環(huán)境時(shí)將其設(shè)置為Web根。例如,讓我們將wwwroot文件夾重命名為Content文件夾?,F(xiàn)在,在Program類(lèi)的Main()方法中調(diào)用UseWebRoot()方法將Content文件夾配置為Web根文件夾,如下所示。

訪問(wèn)wwwroot文件夾之外的靜態(tài)文件
假設(shè)這有一個(gè)項(xiàng)目層次結(jié)構(gòu),其中要提供的靜態(tài)文件不在wwwroot的范圍內(nèi)。

對(duì)于訪問(wèn)自拍.png的請(qǐng)求,需要配置靜態(tài)文件中間件,如下所示:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory){
app.UseStaticFiles();
app.UseStaticFiles(new StaticFileOptions() {
FileProvider = new PhysicalFileProvider(
Path.Combine(Directory.GetCurrentDirectory(), @"其他靜態(tài)文件")),
RequestPath = new PathString("/StaticFiles")
});
}請(qǐng)求http://localhost:xxxx/StaticFiles/自拍.png將訪問(wèn)到自拍.png文件。
啟用目錄瀏覽
目錄瀏覽允許Web應(yīng)用程序用戶查看指定目錄中的目錄和文件列表。出于安全原因,默認(rèn)情況下禁用目錄瀏覽。要啟用目錄瀏覽,請(qǐng)從Startup.Configure中調(diào)用擴(kuò)展方法UseDirectoryBrowser :

并通過(guò)從Startup.ConfigureServices調(diào)用AddDirectoryBrowser擴(kuò)展方法來(lái) 添加所需的服務(wù)

上面的代碼允許使用URL http://localhost:xxxx/images/瀏覽wwwroot/images文件夾的目錄,并帶有指向每個(gè)文件和文件夾的鏈接:

提供默認(rèn)文檔
設(shè)置默認(rèn)主頁(yè)將為網(wǎng)站訪問(wèn)者提供一個(gè)訪問(wèn)網(wǎng)站的起點(diǎn)。為了使Web應(yīng)用程序無(wú)需用戶完全限定URI即可提供默認(rèn)頁(yè)面,請(qǐng)?jiān)赟tartup.Configure中調(diào)用擴(kuò)展方法UseDefaultFiles。
public void Configure(IApplicationBuilder app){
app.UseDefaultFiles();
app.UseStaticFiles();
}使用UseDefaultFiles,對(duì)文件夾的請(qǐng)求將搜索:
- default.htm
- default.html
- index.htm
- index.html
從列表中找到的第一個(gè)文件將作為默認(rèn)起始頁(yè)面。
到此這篇關(guān)于ASP.NET Core6.0-wwwroot文件夾無(wú)法訪問(wèn)解決方法的文章就介紹到這了,更多相關(guān)ASP.NET Core wwwroot文件夾無(wú)法訪問(wèn)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
.Net語(yǔ)言Smobiler開(kāi)發(fā)利用Gridview控件設(shè)計(jì)較復(fù)雜的表單
這篇文章主要為大家詳細(xì)介紹了.Net語(yǔ)言Smobiler開(kāi)發(fā)利用Gridview控件設(shè)計(jì)較復(fù)雜的表單,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-09-09
asp.net中IDataParameter調(diào)用存儲(chǔ)過(guò)程的實(shí)現(xiàn)方法
這篇文章主要介紹了asp.net中IDataParameter調(diào)用存儲(chǔ)過(guò)程的實(shí)現(xiàn)方法,在asp.net數(shù)據(jù)庫(kù)程序設(shè)計(jì)中非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-09-09
在ASP.NET Core中實(shí)現(xiàn)一個(gè)Token base的身份認(rèn)證實(shí)例
以前在web端的身份認(rèn)證都是基于Cookie | Session的身份認(rèn)證,本篇文章主要介紹了在ASP.NET Core中實(shí)現(xiàn)一個(gè)Token base的身份認(rèn)證實(shí)例,有興趣的可以了解一下。2016-12-12
asp.net Repeater之非常好的數(shù)據(jù)分頁(yè)
asp.net Repeater之非常好的數(shù)據(jù)分頁(yè)實(shí)現(xiàn)代碼。2009-07-07
asp.net 該行已經(jīng)屬于另一個(gè)表錯(cuò)誤的解決方法
從一個(gè)TABLE中取一行放到另一個(gè)TABLE里報(bào)錯(cuò): 該行已經(jīng)屬于另一個(gè)表。的解決辦法 用下面來(lái)個(gè)方法就OK了。2010-05-05
.Net使用SuperSocket框架實(shí)現(xiàn)WebSocket后端
這篇文章介紹了.Net使用SuperSocket框架實(shí)現(xiàn)WebSocket后端,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-01-01
輕量級(jí)ORM框架Dapper應(yīng)用之實(shí)現(xiàn)Join操作
本文詳細(xì)講解了使用Dapper實(shí)現(xiàn)Join操作,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03

