雖然ASP.NET Core是一款“動(dòng)態(tài)”的Web服務(wù)端框架,但是在很多情況下都需要處理針對(duì)靜態(tài)文件的請(qǐng)求,最為常見的就是這對(duì)JavaScript腳本文件、CSS樣式文件和圖片文件的請(qǐng)求。針對(duì)不同格式的靜態(tài)文件請(qǐng)求的處理,ASP.NET Core為我們提供了三個(gè)中間件,它們將是本系列文章論述的重點(diǎn)。不過(guò)在針對(duì)對(duì)它們展開介紹之前,我們照理通過(guò)一些簡(jiǎn)單的實(shí)例來(lái)體驗(yàn)一下如何在一個(gè)ASP.NET Core應(yīng)用中發(fā)布靜態(tài)文件。[本文已經(jīng)同步到《ASP.NET Core框架揭秘》之中]
目錄
一、以Web的形式讀取文件
二、瀏覽目錄內(nèi)容
三、顯示默認(rèn)頁(yè)面
四、映射媒體類型
一、以Web的形式讀取文件
我們創(chuàng)建的演示實(shí)例是一個(gè)簡(jiǎn)單的ASP.NET Core控制臺(tái)應(yīng)用,它具有如下圖所示的項(xiàng)目結(jié)構(gòu)。我們可以看到在默認(rèn)作為WebRoot的目錄(wwwroot)下,我們將JavaScript腳本文件、CSS樣式文件和圖片文件存放到對(duì)應(yīng)的子目錄(js、css和img)下,我們將把這個(gè)目錄的所有文件以Web的形式發(fā)布出來(lái),客戶端可以訪問(wèn)相應(yīng)的URL來(lái)獲取這些文件。
針對(duì)靜態(tài)文件的請(qǐng)求是通過(guò)一個(gè)名為StaticFileMiddleware的中間件來(lái)實(shí)現(xiàn)的,這個(gè)中間件類型定義在NuGet包“Microsoft.AspNetCore.StaticFiles”中,所以我們需要預(yù)先按照這個(gè)NuGet包。整個(gè)應(yīng)用只包含如下所示的這幾行代碼,StaticFileMiddleware這個(gè)中間件的注冊(cè)是通過(guò)調(diào)用ApplicationBuilder的擴(kuò)展方法UseStaticFiles來(lái)完成的。
1: public class Program
&nbs