2016-08-03 85 views
0

Ich habe den folgenden Code in einer aspx-Datei:IIS Änderungen domian in href Attribut eines (Link) Tags

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

myfunction eine sehr einfache Zeichenfolge wie folgt zurück:

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

Lokal die Code läuft jedoch reibungslos, wenn ich ihn in die Produktionsumgebung migriere. Alle href-Attribute wurden geändert in: http://serverdomain.com/link

Das ist sehr seltsam für mich, ich habe das schon mehrmals getan. Ich weiß nicht, was ich diesmal falsch mache.

Hat jemand eine Idee darüber, was ich vermisse?

+0

Können Sie den Code Ihrer Funktion posten, die den Link generiert? Ich vermute, das Problem ist da, nicht in dir aspx Markup. – fotijr

+0

@fotijr Die Funktion ist genau das, was Sie in der Post sehen. Eine einfache Rückgabe einer verketteten Zeichenfolge. Außerdem habe ich etwas neues gefunden, wenn ich eine Zeichenfolge ohne 'http: //' zurückgebe, würde der Server so etwas schreiben: 'http://serverdomain.com/domain.com/link' – Ayorus

+0

Es gibt keinen Code in deinem Post, Ich frage nach dem Code von 'myfunction()', der die href-Zeichenfolge erstellt. – fotijr

Antwort

1

IIS verursacht hier keinen Effekt, das Verhalten wird durch die HTML-Spezifikation definiert. Für Navigationslinks gibt es vier gemeinsame Konventionen ein href-Attribut folgen:

  1. Beginnend mit http:// oder //. Der Browser löst den Link als absolute URL auf.

  2. Beginnend mit einer einzelnen /. Der Browser löst den Link relativ zur Domain auf.

  3. Beginnend mit Text. Der Browser löst den Link relativ zur Seite auf.

  4. Beginnend mit #. Der Browser sucht nach einem HTML-Element auf derselben Seite (nach ID) und scrollt zu diesem, wenn er gefunden wurde.

würde ich die Saiten des Rückgabewertes Ihrer Funktion und die tatsächlichen HTML-Markup gerendert vergleichen (nicht nur was zu oder auf schweben gezeigt navigiert wird).

Um ein Beispiel auf dieser Seite zu verwenden:

<a href="/questions">Questions</a> eine relative URL ist, die https://stackoverflow.com/questions löst.

<a href="http://example.com/questions">Questions</a> ist eine absolute URL und wird in eine externe Domäne unter http://example.com/questions aufgelöst.

In einem Ihrer Kommentare würde der Wert Ihrer Funktion eine relative URL erstellen. Wenn <a href="domain.com/link?param="> auf dieser Seite war, würde es https://stackoverflow.com/ als Domäne auflösen.