2

我們希望將我們的應用程序的所有靜態內容(js,css,圖像 - png,gif,jpeg,jpg)路由到RouteHandler。我們會在哪裏做Best Practices for Speeding up Web Sites。就像爲我們所有的靜態內容添加ETags,Cache Control,Expires等一樣。靜態內容的RouteHandler

我們該怎麼做?

+0

我相當肯定大部分可以用IIS來完成...... – Martin 2012-03-07 13:21:40

+0

@Martin我同意,但有些情況下你需要像圖像處理程序需要'ETag'或'If-Modified-由於'但不是用戶配置文件圖像,因爲它們可以更改。 – 2012-03-07 14:14:02

回答

1

你應該真的在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/...,會發生什麼情況?可能沒什麼,但我不喜歡它。