2016-08-03 49 views
0

我有一个aspx文件下面的代码:IIS变化的(链接)的href属性DOMIAN标签

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

MyFunction的返回一个非常简单的字符串是这样的:

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

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

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

有没有人对我失踪的东西有所了解?

+0

你可以发布你的函数的代码生成链接?我怀疑问题出在那里,而不是你的aspx标记。 – fotijr

+0

@fotijr该功能就是您在帖子中看到的内容。一个简单的串联字符串返回。此外,我发现了一些新的东西,如果我返回一个没有'http://'的字符串,服务器会写这样的内容:'http://serverdomain.com/domain.com/link' – Ayorus

+0

你的帖子中没有代码,我要求查看构建href字符串的'myfunction()'的代码。 – fotijr

回答

1

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

  1. http:////开始。浏览器会将该链接解析为绝对URL。

  2. 从一个开始/浏览器将相对于域解析链接。

  3. 从文字开始。浏览器将相对于页面解析链接。

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

我会比较你的函数的返回值,并呈现实际的HTML标记(而不仅是导航到或悬停显示)的字符串。

在这个页面上使用的例子:

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

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

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