我们希望将应用程序的所有静态内容(js、css、图像 - png、gif、jpeg、jpg)路由到 RouteHandler。我们将在哪里进行加速网站的最佳实践。就像为我们所有的静态内容添加 ETag、缓存控制、过期等。
我们怎么能做到这一点?
我们希望将应用程序的所有静态内容(js、css、图像 - png、gif、jpeg、jpg)路由到 RouteHandler。我们将在哪里进行加速网站的最佳实践。就像为我们所有的静态内容添加 ETag、缓存控制、过期等。
我们怎么能做到这一点?
您真的应该在 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/...
?可能没什么,但我不喜欢它。