Asp.net Net MVC应用程序指向本地主机,而不是应用程序目录

Asp.net Net MVC应用程序指向本地主机,而不是应用程序目录,asp.net,asp.net-mvc,iis-7,Asp.net,Asp.net Mvc,Iis 7,您好,我正在Win7上的IIS上部署MVC应用程序。我已经在localhost/appPortal上部署了它。appPortal配置为应用程序而不是虚拟目录。不幸的是,MVC中的应用程序根被映射到localhost,而不是localhost/appPortal。这会破坏我与脚本、css、图像等的所有链接。有人能帮助我理解为什么会发生这种情况以及如何修复它吗?最好的解决方案是不要在应用程序中使用根链接(以/)开头的链接)。您可以使用~/作为对应用程序根的引用。我用这样的东西 <script

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

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

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

有关如何创建链接的更多信息将非常有趣

首先要检查的是应用程序是否在IIS中正确创建,我想应该是这样。(否则,您可能会从嵌套的web.config文件中获得错误)

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

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


也许这会给你更多的选择。检查和上的MSDN文档。

您也可以只使用HTML5文档类型和
标记

是的,我就是这么做的


但这可能不是一个选项,因此您应该使用Marc所述的URL帮助程序。

实际上,该应用程序是由其他团队开发的,他们在IIS根目录上托管该应用程序。所有对资产的引用都使用VS2008在开发过程中拾取的相对路径。应用程序意味着视图渲染正确,但脚本、CSS不起作用。我是否需要像您的解决方案一样将ref.更改为所有静态内容?问题是JS不支持vdir。我们现在的解决方案是在一个从主机调用的脚本中创建一个JS对象,该脚本的属性值为当前vdir路径,即:Globals.rootPath=“/vdir/”或“/”如果它是子域。对于引用CSS和脚本,我们使用Url.Content。