RouteHandler для статического содержимого - PullRequest
2 голосов
/ 07 марта 2012

Мы хотим направить весь статический контент (js, css, изображения - png, gif, jpeg, jpg) нашего приложения в RouteHandler.Где мы будем делать Рекомендации по ускорению веб-сайтов .Как добавление ETag, Cache Control, Expires и т. Д. Для всего нашего статического контента.

Как мы можем это сделать?

1 Ответ

1 голос
/ 09 марта 2012

Вы действительно должны сделать это в 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/...?Наверное, ничего, но мне это не нравится.

...