嵌套应用程序忽略捆绑包

时间:2017-08-08 08:28:14

标签: asp.net-mvc iis t4mvc asp.net-bundling

我正在尝试将ASP.NET MVC 5.2.3.0应用程序作为嵌套应用程序运行,以便我可以将其作为子文件夹访问,例如http://example.com/my-application。 我已经通过选择Add Application选择单独的应用程序池将其添加到现有应用程序中。 当我在自己的URL上运行我的应用程序时它工作正常但是当我尝试以http://example.com/my-application运行它时它拒绝渲染包,既不是样式也不是js。 到目前为止我尝试了什么:

  • 我尝试启用和禁用捆绑和缩小功能。当它被禁用时,Styles.Render不会添加任何标记。启用后,无效链接到标记会添加到标记中,例如<link href="/calc/bundles/styles/mainlayout?v=" rel="stylesheet"/>,链接将返回空文档。
  • 我试图将我的应用程序放到空网站上以确保没有继承的副作用。这里没什么区别。
  • 我试图将全新的应用程序与我的应用程序并排放置,捆绑在那里工作得很好,所以我的应用程序一定有问题而我找不到确切的内容。
  • 我尝试过ILSpy System.Web.Optimization代码,但在那里找不到任何帮助。
  • 我无法调试System.Web.Optimization,因为我的VS刚刚挂起。
  • 我没有找到任何与我的应用程序地址冲突的路由。

如果有人遇到同样的问题,那么任何建议都会受到赞赏。 感谢。

更新:我找到了导致问题的原因。我们密集使用T4MVC,我们也将它用于捆绑配置。所以我们的bundle声明看起来像:

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则为driver.findElement(By.cssSelector("div.md-tile-text--primary‌​.md-text:contains('Getting Started')"));

所以问题转化为:有没有人知道如何防止T4MVC将嵌套的应用程序路径添加到静态文件链接上,以便应用程序不知道嵌套?我打赌@David Ebbo知道如何实现这个目标:)

0 个答案:

没有答案