在MVC中,路由是必不可少的,並且MVC對Url的重寫很是方便,只須要在路由中配置相應的規則便可。假如咱們須要給信息詳情頁配置路由,代碼以下:css
routes.MapRoute( name: "Info", url: "info/{id}.html", defaults: new { controller = "Index", action = "Info", id = UrlParameter.Optional } );
運行結果圖:html
運行後發現系統找不到咱們要的頁面,並且調試後發現根本就沒有匹配到咱們配置的路由,這是由於IIS把.css文件、.js文件、.jpg以及.html等格式的請求都交給了StaticFile進行處理,而不去匹配路由規則,致使沒法訪問。web
解決方法:緩存
解決這個問題很簡單,只須要在Web.config中添加一個配置節點並將其值設爲true便可,代碼以下:學習
<system.webServer> <modules runAllManagedModulesForAllRequests="true" /> </system.webServer>
再次運行,頁面被正常訪問,親測可行。測試
不過近段時間發現,當路由和靜態文件同時存在的時候會有衝突,訪問頁面時一會走靜態文件,一會走路由,目前還在尋找緣由和解決辦法。url
熱點緩存:就是經過對數據的分析,獲得訪問熱點,而後針對熱點和業務邏輯進行緩存處理,例如把頁面靜態化(~曉菜鳥 :) )。spa
假如/info/1.html這個頁面是目前訪問最高的一個頁面,結合業務分析能夠對這個頁面進行靜態化處理,目前採用的方式是在站點下面新建一個Info文件夾,而後在裏面存放1.html的靜態文件,測試發現,當咱們訪問/info/1.html這個頁面時,有時會讀取靜態文件,有時會走路由,很是的不穩定。若是您有什麼想法或建議,請直接在評論區留言,謝謝!調試