ASP.Net MVC应用程序指向localhost而不是应用程序目录

时间:2009-11-12 14:04:36

标签: asp.net asp.net-mvc iis-7

您好我正在Win7上的IIS上部署MVC应用程序。我已经在localhost / appPortal上部署了它。 appPortal配置为应用程序而不是虚拟目录。不幸的是,MVC中的应用程序根被映射到localhost而不是localhost / appPortal。这打破了我对脚本,CSS,图像等的所有链接。任何人都可以帮助我理解为什么会发生这种情况以及如何解决它?

3 个答案:

答案 0 :(得分:2)

有关如何创建链接的更多信息会很有趣。

要检查的第一件事是在IIS中正确创建了应用程序,我认为它是。 (如果不是,你可能会从嵌套的web.config文件中获得错误)

第二件事,网址应该像这样创建而不是直接创建:

<%= Url.Content("~/yourpath/yourfile.css") %>

也许这个question about Url.Content会向您展示更多选项。检查UrlHelperHtmlHelper上的MSDN文档。

答案 1 :(得分:0)

最佳解决方案是不在您的应用程序中使用rooted链接(以/开头的链接)。您可以使用〜/作为对应用程序根目录的引用。我使用这样的东西

<script src="<%=ResolveClientUrl("~/script/something.js") %>"

解析为/ scripts。这样做可以使您的应用程序更加便携

答案 2 :(得分:0)

您也可以使用HTML 5文档类型和<base>标记。

是的,我刚刚那样做了。

这可能不是一个选择,所以你应该像Marc所说的那样使用URL助手。