IIS 更改 a(link) 标签的 href 属性中的域

IIS changes domian in href attribute of a(link) tags

我在一个 aspx 文件中有以下代码:

<a href="<%# myfunction() %>" ...

myfunction returns 一个非常简单的字符串,像这样:

return "http://domain.com/link";

代码在本地运行流畅,但是,当我将其迁移到生产环境时。所有 href 属性更改为:http://serverdomain.com/link

这对我来说很奇怪,我以前做过几次。我不知道这次我做错了什么。

有人知道我错过了什么吗?

IIS 在这里没有造成任何影响,行为由 HTML 规范定义。对于导航 links,href 属性可以遵循四种常见约定:

  1. http://// 开始。 浏览器会将 link 解析为绝对值 URL.

  2. 从单个 / 开始。 浏览器将 link 解析为相对于域的。

  3. 从文本开始。 浏览器将 link 解析为相对于页面。

  4. #. 开始,浏览器将在同一页面上查找 HTML 元素(按 ID)并滚动如果找到了。

我会比较函数的 return 值的字符串和呈现的实际 HTML 标记(不仅仅是导航到或悬停时显示的内容)。

要使用此页面上的示例:

<a href="/questions">Questions</a> 是一个相对 URL,解析为 https://whosebug.com/questions

<a href="http://example.com/questions">Questions</a> 是绝对的 URL,并解析为位于 http://example.com/questions.

的外部域

根据您的评论之一,您的函数将创建一个相对值 URL。如果 <a href="domain.com/link?param="> 在此页面上,它将解析 https://whosebug.com/ 作为域。