我在一个aspx文件中有以下代码:
<a href="<%# myfunction() %>" ...
myfunction返回一个非常简单的字符串:
return "http://domain.com/link";
当我将代码迁移到生产环境时,本地代码运行顺畅。所有href属性都更改为:http://serverdomain.com/link
这对我来说很奇怪,我以前做了好几次。这次我不知道我做错了什么。
有没有人知道我错过了什么?
答案 0 :(得分:1)
IIS不会在此处产生任何影响,行为由HTML规范定义。对于导航链接,href属性可以遵循四种常见约定:
从http://
或//
开始。浏览器会将该链接解析为绝对网址。
从单个/
开始。浏览器将相对于域解析链接。
以文字开头。浏览器将解析相对于网页的链接。
从#
开始。浏览器将在同一页面上查找HTML元素(按ID),如果找到则滚动到该元素。
我会比较函数返回值的字符串,以及呈现的实际HTML标记(不仅仅是导航到或在悬停时显示的内容)。
要在此页面上使用示例:
<a href="/questions">Questions</a>
是相对网址,可解析为https://stackoverflow.com/questions
。
<a href="http://example.com/questions">Questions</a>
是绝对网址,并在http://example.com/questions
解析为外部域。
根据您的一条评论,您的函数将创建相对URL的值。如果此页面上有<a href="domain.com/link?param=">
,则会将https://stackoverflow.com/解析为域名。