2

我们希望将应用程序的所有静态内容(js、css、图像 - png、gif、jpeg、jpg)路由到 RouteHandler。我们将在哪里进行加速网站的最佳实践。就像为我们所有的静态内容添加 ETag、缓存控制、过期等。

我们怎么能做到这一点?

4

1 回答 1

1

您真的应该在 IIS 中执行此操作。

但是,如果您想完全控制它(虽然找不到一个很好的理由!),您可以添加一条 catch all 路线作为您的最后一条路线。就像是:

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/...?可能没什么,但我不喜欢它。

于 2012-03-08T23:15:00.750 回答