在虚拟目录中运行时,System.Web.Optimization包是空的

时间:2013-01-23 09:29:00

标签: asp.net iis iis-7.5 asp.net-optimization

使用IIS中的虚拟目录将我的应用程序部署到服务器时遇到问题。

我已将相同的文件配置为直接在虚拟机中的默认网站下运行,也可以在端口81上运行的新网站根目录中运行。两种配置都使用自己相同的应用程序池。虽然端口81上的站点工作正常,但虚拟目录中运行的站点不会加载捆绑包。

在页面中,我看到URL中缺少版本的链接,例如:

<link href="/MyVirtualDir/Content/css/site?v=" rel="stylesheet">

URL从服务器返回200状态,但内容完全为空。

我在this这样引用this bug ticket的问题上看过SO,但我的理解是,这是捆绑包中的文件是“虚拟”还是不在物理文件夹根目录下的情况。在我的情况下,这不是真的。

欢呼,你可以给我任何帮助。我无法相信这种配置不会得到支持,所以我必须在某处做错事!

更新 我认为在这里的网络优化codeplex网站上已经提出了描述我的问题的故障单http://aspnetoptimization.codeplex.com/workitem/55并不是说这让我更进一步:(

1 个答案:

答案 0 :(得分:2)

在与新项目进行比较后,我追踪了问题:

我正在使用T4MVC(试图聪明而不是在我的代码中使用'魔术字符串')。所以我使用了诸如

之类的链接
bundles.Add(new ScriptBundle("~/Scripts/all")
            .Include("~"+Links.Scripts.Library.jqueryPlugin.jquery_ui_js), ...));

当它在虚拟目录下运行时,它将使用路径中的虚拟目录名解析,因此无法找到这些文件。

我希望这可以帮助遇到同样问题的其他人。此外,看起来T4MVC希望在未来版本中改进捆绑中魔术字符串的使用。 See here for a discussion