2
我們希望將我們的應用程序的所有靜態內容(js,css,圖像 - png,gif,jpeg,jpg)路由到RouteHandler。我們會在哪裏做Best Practices for Speeding up Web Sites。就像爲我們所有的靜態內容添加ETags,Cache Control,Expires等一樣。靜態內容的RouteHandler
我們該怎麼做?
我們希望將我們的應用程序的所有靜態內容(js,css,圖像 - png,gif,jpeg,jpg)路由到RouteHandler。我們會在哪裏做Best Practices for Speeding up Web Sites。就像爲我們所有的靜態內容添加ETags,Cache Control,Expires等一樣。靜態內容的RouteHandler
我們該怎麼做?
你應該真的在IIS中做到這一點。
但是,如果你想完全控制它(雖然找不到一個好理由!),你可以添加一個捕獲所有路線作爲你的最後一個路線。喜歡的東西:
routes.MapRoute(
"Static",
"{*path}",
new { controller = "Home", action = "Static"});
動作然後添加到您的控制來處理它:
public ActionResult Static(string path)
{
//path is everything you get after the/
//Use Server.MapPath to load it
//Add headers to response, etc
return File();
}
但是,這是非常糟糕的在我看來。最明顯的是從URL獲取路徑並將其映射到服務器。如果路徑是/../../Windows/...
,會發生什麼情況?可能沒什麼,但我不喜歡它。
我相當肯定大部分可以用IIS來完成...... – Martin 2012-03-07 13:21:40
@Martin我同意,但有些情況下你需要像圖像處理程序需要'ETag'或'If-Modified-由於'但不是用戶配置文件圖像,因爲它們可以更改。 – 2012-03-07 14:14:02