DefaultFilesMiddleware中間件的目的在于將目標目錄下的默認文件作為響應內(nèi)容。我們知道,如果直接請求的就是這個默認文件,那么前面介紹的StaticFileMiddleware中間件會將這個文件響應給客戶端。如果我們能夠?qū)⑨槍δ夸浀恼埱笾囟ㄏ虻竭@個默認文件上,一切就迎刃而解了。實際上DefaultFilesMiddleware中間件的實現(xiàn)邏輯很簡單,它采用URL重寫的形式修改了當前請求的地址,即將針對目錄的URL修改成針對默認文件的URL。[本文已經(jīng)同步到《ASP.NET Core框架揭秘》之中]

我們照例先來看看DefaultFilesMiddleware類型的定義。和其他兩個中間件類似,DefaultFilesMiddleware的構(gòu)造就有一個IOptions<DefaultFilesOptions>類型的參數(shù)來指定相關(guān)的配置選項。由于DefaultFilesMiddleware中間件本質(zhì)上依然體現(xiàn)了請求路徑與某個物理目錄的映射,所以DefaultFilesOptions依然派生于SharedOptionsBase。DefaultFilesOptions的DefaultNames屬性包含了預定義的默認文件名,我們可以看到它默認包含四個名稱(default.htm、default.html、index.htm或者index.html)。

   1: public class DefaultFilesMiddleware
   2: {
   3:     public DefaultFilesMiddleware(RequestDelegate next, IHostingEnvironment hostingEnv, IOptions<DefaultFilesOptions> options);
        		

網(wǎng)友評論