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 属性可以遵循四种常见约定:
从 http://
或 //
开始。 浏览器会将 link 解析为绝对值 URL.
从单个 /
开始。 浏览器将 link 解析为相对于域的。
从文本开始。 浏览器将 link 解析为相对于页面。
从 #
. 开始,浏览器将在同一页面上查找 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/ 作为域。
我在一个 aspx 文件中有以下代码:
<a href="<%# myfunction() %>" ...
myfunction returns 一个非常简单的字符串,像这样:
return "http://domain.com/link";
代码在本地运行流畅,但是,当我将其迁移到生产环境时。所有 href 属性更改为:http://serverdomain.com/link
这对我来说很奇怪,我以前做过几次。我不知道这次我做错了什么。
有人知道我错过了什么吗?
IIS 在这里没有造成任何影响,行为由 HTML 规范定义。对于导航 links,href 属性可以遵循四种常见约定:
从
http://
或//
开始。 浏览器会将 link 解析为绝对值 URL.从单个
/
开始。 浏览器将 link 解析为相对于域的。从文本开始。 浏览器将 link 解析为相对于页面。
从
#
. 开始,浏览器将在同一页面上查找 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/ 作为域。