3

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

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

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

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

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

我已经看过这样的问题,这些问题引用了这个错误票,但我的理解是,这是包含在捆绑包中的文件是“虚拟”或不在物理文件夹根目录下的时候。在我的情况下这是不正确的。

为你能给我的任何帮助干杯。我不敢相信这种配置不被支持,所以我一定在某处做错了!

更新:我认为在此处的网络优化 codeplex 站点http://aspnetoptimization.codeplex.com/workitem/55 上提出了一张描述我的问题的票,但这并不是说这让我更进一步:(

4

1 回答 1

2

在与一个新项目进行比较后,我发现了问题:

我正在使用 T4MVC(尽量聪明,不要在我的代码中使用“魔术字符串”)。所以我使用了一个链接,比如

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

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

我希望这可以帮助遇到同样问题的其他人。此外,看起来 T4MVC 正在寻求在未来版本中改进捆绑包中魔术字符串的使用。请参阅此处进行讨论

于 2013-02-06T13:20:27.923 回答