Я хочу сгенерировать некоторые 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:
После дальнейших исследований я обнаружил статью по первому вопросу.