2016-08-03 81 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/