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