我們在開發MVC當中,經常在我們的全局類的路由設置,看到這樣的代碼:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}") //對所有axd的資源 進行忽略,直接進行URL訪問
幾乎有所有的同學 都默認保留,也沒有人問津!
最近正好,在學習MVC的Filter這個刷選器,順便在群里發起討論,幾乎沒有一個准確答案!
我正好借此機會學習了下:
{resource}.axd 表示后綴名為.axd所有資源 如webresource.axd
{*pathInfo} 表示所有路徑
這個axd到底是什么呢!
從上面可以看到,axd 是對C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll 的隱射。
那你這個時候,估計還不明白。這個*.axd到底是什么東東呢!
其實后綴名.axd 就是一個ashx一樣的weweb handler,實現接口IHttpHandler的方法。
這樣的好處可以:可以免去繁瑣的控件解析過程和頁面處理過程。
比如:fckeditor控件,我在調用它的時候 就得在webconfig 中注冊,那你這個時候 就需要路由設置當中這句:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
還比如:我們把css,js,image 等封裝到dll里,那我們這個時候也不需要路由器對其解析,可以直接訪問,也需要上面這句。
如:webresource.axd
但是你們如果沒有用第三方控件,或封裝Image,Css,Javascript到Dll的時候。
就可以完全可以刪除了! 不知道講解的對不對,希望路過的大牛指點,不要誤人子弟為好!