将MVC Beta Web应用程序移动到虚拟目录会删除所有/内容资源

时间:2009-01-17 09:16:36

标签: asp.net-mvc iis-6 routing

我在win2008服务器上使用VS2008开发了一个非常好的MVC Beta应用程序。当我尝试将其部署到IIS6虚拟目录时,我的麻烦就开始了。在目标win2003服务器盒上安装MVC Beta之后,我能够从虚拟目录中显示应用程序,但缺少所有图像和css属性。占位符建议图像应位于根网站而不是应用程序运行的虚拟目录。

实际路径:

http://localhost/Content/images/<myimage>.png

而不是:

http://localhost/<virtualdirectory>/Content/images/<myimage>.png

如果我在自己的网站(Root)中安装应用程序,一切正常。我可以通过将Web属性设置为“使用Visual Studio开发服务器”/特定端口/并添加虚拟路径,在VS2008中复制它。

我也可以通过将项目的Web属性设置为“使用本地IIS Web服务器”并创建虚拟目录来复制它。

关于mvc url路由,我有一些明显的遗漏。这里的任何指导将不胜感激。

1 个答案:

答案 0 :(得分:5)

你是如何引用图像的?他们应该开始“〜/”表示“app root”(“/”是“站点根”) - 即“/Content/images/myimage.png”。

但是,有些控件会将其发送给客户端而不替换虚拟路径;对于相关的线程(谈论js,但概念是相同的),请参阅here(包括一个简单的解决方案/示例方法)。

此外 - 虚拟应用程序? cog icon ...

考虑母版页中的<base href...>标记(到app根目录)