我们希望将应用程序的所有静态内容(js,css,images - png,gif,jpeg,jpg)路由到RouteHandler。在哪里我们会做Best Practices for Speeding up Web Sites。就像为我们所有的静态内容添加ETag,Cache Control,Expires等一样。
我们怎么能这样做?
答案 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/...
,会发生什么?可能没什么,但我不喜欢它。