Вложенное приложение игнорирует пакеты

Я пытаюсь запустить приложение ASP.NET MVC 5.2.3.0 как вложенное приложение, чтобы я мог получить к нему доступ в виде подпапки, например, http://example.com/my-application. Я добавил его в существующее приложение, выбрав "Добавить приложение" для выбранного отдельного пула приложений. Когда я запускаю my-application по собственному URL, оно работает нормально, однако, когда я пытаюсь запустить его как http://example.com/my-application оно отказывается отображать пакеты, ни style, ни js. Что я уже пробовал:

  • Я попытался включить и отключить пакетирование и минификацию. Когда он отключен, Styles.Render ничего не добавляет в разметку. Например, при включении в разметку добавляется недействительная ссылка на комплект <link href="/calc/bundles/styles/mainlayout?v=" rel="stylesheet"/> и ссылка возвращает пустой документ.
  • Я попытался поместить мое приложение на пустой сайт, чтобы избежать наследственных побочных эффектов. Здесь нет разницы.
  • Я пытался поставить совершенно новое приложение рядом с my-application, и комплектация работала там нормально, так что, должно быть, что-то не так с моим приложением, и я не могу найти что именно.
  • Я пытался использовать код ILSpy System.Web.Optimization, но не смог найти там никакой помощи.
  • Я не смог отладить System.Web.Optimization, так как моя VS только что зависла.
  • Я не нашел никаких конфликтующих маршрутов с адресом моего приложения.

Если кто-то сталкивался с той же проблемой, то любой совет приветствуется. Благодарю.

ОБНОВЛЕНИЕ: я нашел, что вызывает проблему. Мы интенсивно используем T4MVC и используем его также для конфигурации пакетов. Таким образом, наше объявление пакета выглядит примерно так:

bundles.Add(new ScriptBundle("~/bundles/scripts")
       .Include("~" + Links.Scripts.Script1_js, "~" + Links.Scripts.Script2_js));

А также "~" + Links.Scripts.Script1_js для вложенного приложения дает мне ~/my-application/scripts/script1.js в то время как VirtualPathProvider изнутри Include метод ожидает, что это будет ~/scripts/script1.js,

Таким образом, вопрос трансформируется в: кто-нибудь знает, как запретить T4MVC добавлять вложенные пути к приложениям в ссылки на статические файлы, чтобы приложение не осознавало, что оно вложено? Бьюсь об заклад, Дэвид Эббо знает, как этого добиться:)

0 ответов

Другие вопросы по тегам