使用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并不是说这让我更进一步:(
答案 0 :(得分:2)
在与新项目进行比较后,我追踪了问题:
我正在使用T4MVC(试图聪明而不是在我的代码中使用'魔术字符串')。所以我使用了诸如
之类的链接bundles.Add(new ScriptBundle("~/Scripts/all")
.Include("~"+Links.Scripts.Library.jqueryPlugin.jquery_ui_js), ...));
当它在虚拟目录下运行时,它将使用路径中的虚拟目录名解析,因此无法找到这些文件。
我希望这可以帮助遇到同样问题的其他人。此外,看起来T4MVC希望在未来版本中改进捆绑中魔术字符串的使用。 See here for a discussion