RouteHandler for Static Content

时间:2012-03-07 12:13:51

标签: asp.net-mvc routing routes asp.net-mvc-routing custom-routes

我们希望将应用程序的所有静态内容(js,css,images - png,gif,jpeg,jpg)路由到RouteHandler。在哪里我们会做Best Practices for Speeding up Web Sites。就像为我们所有的静态内容添加ETag,Cache Control,Expires等一样。

我们怎么能这样做?

1 个答案:

答案 0 :(得分: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/...,会发生什么?可能没什么,但我不喜欢它。