Я пытаюсь служить некоторые JS и CSS файлы, которые встроены в DLL, с раствором на основе этого подхода здесь: http://weblogs.asp.net/imranbaloch/asp-net-bundling-and-minification-and-embedded-resourcesКак настроить внедренных ресурсов в приложении MVC
так, JavaScript и CSS файлы встроены, и я создаю для них пакеты. Мои проблемы начинаются потому, что, имея немало из них, мне нужна структура папок, чтобы поддерживать порядок. Таким образом, оригинальный маршрут
RouteTable.Routes.Insert(0,
new Route("Embedded/{file}.{extension}",
new RouteValueDictionary(new { }),
new RouteValueDictionary(new { extension = "css|js" }),
new EmbeddedResourceRouteHandler()
));
уже не достаточно, поэтому я изменил его к этому:
RouteTable.Routes.Insert(0,
new Route("Embedded/{*url}",
new RouteValueDictionary(new { }),
new EmbeddedResourceRouteHandler()
));
Я также не могу использовать расширенную часть, потому что всеобъемлющая часть должна быть последним Итак, теперь, если я попытаюсь получить доступ к чему-либо, что похоже на файл, мой маршрут никогда не будет использоваться, поэтому я просто получу 404
Я попытался заменить точку косой чертой или добавить косую черту в конце, но что Я после этого - это простое решение, которое позволит мне для сопоставления URL-адресов, которые выглядят как файлы в реальных файлах.
Я также искал в Интернете и там, кажется, решения, основанные на UrlRewrite или изменения web.config, но: - Я не хотел бы изменить настройки IIS для каждого приложения для размещения библиотеки - так как это библиотека, я бы хотел, чтобы она была автономной, и разработчики, которые ее используют, не должны заботиться об этих типах внутренних проблем.
Итак, есть ли решение, которое я могу реализовать в своей библиотеке для этого?
Также стоит отметить, что оригинальный маршрутизации была такая же проблема, он работал только из-за
<modules runAllManagedModulesForAllRequests="true" />
в web.config, который я не думаю, что это хорошая идея для выполнения