最近因為特殊需求,需要在 Global.asax.cs 下新增一筆特殊的 route rule 如下︰
routes.MapRoute( "Default", "{moduleName}/{controller}/{action}", new { controller = "Home", action = "Index", moduleName = "" } );
原本運作得不錯,但在新增 favicon.ico 檔設定後,突然發現在 ASP.Net MVC 下,對 favicon.ico 的 request 不像 .jpg, .png 等圖檔或 .css 檔案一樣被正常存取,而是會被當做對 Controller 的 request 而進入 MVC 的執行流程中,即參數 moduleName 會被代入 favicon.ico 這個值造成網站爆炸了這樣。
解決方式其實也很簡單,google 了一下後,發現在 Global.asax.cs 中再加上如下的設定,讓 MVC 的 Route Table 跳過對 favicon.ico 的 request 就可以了。
routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
參考網址︰
0 意見:
張貼留言