【问题标题】:Relative link to root of IIS Application到 IIS 应用程序根目录的相对链接
【发布时间】:2017-06-05 16:51:38
【问题描述】:

在 IIS 8.5 中,我有一个默认网站,在该网站下有多个应用程序。这些应用中有几个实际上是为不同用户组部署的相同网站代码,每个都指向具有不同配置的不同数据库等等。

是否可以在我的网站中创建链接到应用程序根目录而不是网站的超链接?如果我使用<a href="/" >Go Home</a> 之类的内容,则单击该链接不会导航到http://myserver/myapplication,而是链接到http://myserver

显然我可以对链接进行硬编码,但这意味着必须为网站的每个部署编辑代码。我可以通过将根 URL 存储在配置文件中来解决这个问题,也许这是实现我正在寻找的唯一方法,但它似乎过于复杂!

另外,当我在我的开发机器上调试网站时,URL 类似于http://localhost:12345(即没有应用程序名称),所以即使我确实将根 URL 存储在某个地方,它也不会无需额外工作即可进行开发。

我知道我可以使用像 <a href="../">Go Home</a> 这样的相对路径来向上导航一定数量的级别,但我正在尝试在自定义错误页面上使用此链接,所以理想情况下我希望它能够工作,即使用户以某种方式导航到http://myserver/myapplication/foo/bar/foo/bar/foo/bar 之类的东西,在这种情况下,我的链接需要向上导航六个级别。关键是,我不知道包含链接的页面可能是多少级。

我天真地以为会有<a href="/"... 方式的快捷方式可以到达应用程序根目录,但看来我错了!

【问题讨论】:

  • 什么版本的 MVC?

标签: html asp.net-mvc iis


【解决方案1】:

的第 4 版之前,您将使用以下代码:

<a href="Url.Content("~/") ">Root</a>

对于版本 4 及更高版本, 会自动查找波浪号,因此您可以:

<a href="~/">Root</a>

【讨论】:

  • 我认为没有办法在纯 html 文件中实现这一点(而不是 cshtml)?我正在尝试在自定义错误页面中使用它,并且我希望它不使用 MVC 路由或 Razor,以便即使应用程序的配置出现问题,也尽可能使其仍然工作。
  • 不,通过纯 html 是不可能的。
猜你喜欢
  • 2013-11-12
  • 2015-05-30
  • 2010-11-29
  • 1970-01-01
  • 2012-03-21
  • 1970-01-01
  • 2010-11-15
  • 2012-01-24
  • 1970-01-01
相关资源
最近更新 更多