Соображения при включении RouteExistingFiles - PullRequest
4 голосов
/ 08 марта 2010

Я хочу сгенерировать некоторые CSS-файлы динамически в моей папке Content.

На данный момент у этой папки есть маршрут игнорирования (routes.IgnoreRoute("Content/{*wildcard}");), и я бы хотел, чтобы он оставался, поскольку мне не нужно / не нужно, чтобы большинство моих папок с содержимым переходили в жизненный цикл запроса MVC.

Пример:

 routes.MapRoute(
  "DynamicCSS",
  "Content/Css/Dynamic/{guid}.css",
  new { controller = "Site", action = "GenerateCSS" },
  new { guid = @"^([0-9a-fA-F]){8}([0-9a-fA-F]){4}([0-9a-fA-F]){4}([0-9a-fA-F]){4}([0-9a-fA-F]){12}$" }
);

//If the file has already been generated, IIS should just return the file, saving a request in MVC.
routes.RouteExistingFiles = true; //was formerly false

//Ignore routes
routes.IgnoreRoute("Content/{*wildcard}");

У меня есть пара вопросов / проблем относительно этой установки:

  • Будет ли это работать? Маршруты в ASP.NET MVC ленивы, но я не знаю, проверяются ли сначала маршруты игнорирования. Там нет документации (я гуглил!) По этой форме использования.
  • Есть ли какие-либо последствия для безопасности, которые следует учитывать при включении RouteExistingFiles? Я не хочу, чтобы IIS брал какие-либо из моих папок Model / Views, напрямую ссылаясь на них.

Большое спасибо за любые предложения.

Edit:

После дальнейших исследований я обнаружил статью по первому вопросу.

1 Ответ

3 голосов
/ 11 марта 2010

Скотт Хансельман получил сообщение в блоге «Гибриды подключаемых модулей: ASP.NET WebForms и ASP.MVC и динамические данные бок о бок бок о бок», в котором он также рассказал о своем. http://www.hanselman.com/blog/PlugInHybridsASPNETWebFormsAndASPMVCAndASPNETDynamicDataSideBySide.aspx

Надеюсь, это поможет,

Ray.

...