Frage

Zur Zeit arbeite ich an einem Ort in einer Staging-Umgebung bei www.example.com/staging entfernt. Alle Links für die Website eingestellt wurden relativ (zB: / about /). Ich versuche, einige einfache jQuery schreiben auf den Seiten zu jedem Link hinzufügen „/ staging“, also muss ich alle die Links für die Woche nicht ändern oder so ist es in der Staging-Umgebung ist. Ich weiß, dass das HTML-Tag ist eine Option, sondern weil die Verbindungen dynamisch mit Expression hinzugefügt werden, die Arbeit nicht zu sein scheinen. Ich denke, die jQuery sollte ziemlich einfach sein. Hier ist, was ich habe, aber etwas ist nicht ganz richtig:

$(function() {
  var href = $('a').attr('href');
  $(href).prepend('/staging');
});

Vielen Dank im Voraus für die Hilfe.

War es hilfreich?

Lösung

Versuchen Sie diese:

$(function() {
  $('a').each(function() {
    var href = $(this).attr('href');
    $(this).attr('href', '/staging' + href);
  });
});

Andere Tipps

$(function() {
  $('a').each(function() {
    $(this).attr('href', '/staging' + $(this).attr('href'));
  });
});

$(href) nichts finden, weil es nur der Wert des Attributs ist.

Die URL Beispiele, die Sie geschrieben haben (/about/ und /staging) sind nicht relativ ; sie sind verwurzelte . Diese Wege werden nicht tun, was Sie scheinen zu versuchen, hier zu tun.

Relative URLs nie mit dem Schrägstrich beginnen; sie beginnen mit einem Pfad Teil (einem Namen oder Punkte). Mit dem Schrägstrich am Anfang Kräfte um den Browser zu sehen von der Wurzel des Hosts für den Link, genauso wie den Schrägstrich mit am Anfang eines Pfadnamen in einem Dateisystem des Fall ist.

Eine Alternative zu jQuery ist den <base> Tag zu verwenden.

Hinzufügen <base href="http://www.example.com/staging/" /> innerhalb Ihr <head> Tag alle Ihre /about/ machen (etc) Links arbeiten, um die Art und Weise, die Sie wollen.

Tatsächlich, ich glaube nicht, das für Sie arbeitet. Es würde funktionieren, wenn Sie URLs wie about/, die real relative Links haben. /about/ ist keine relative Verknüpfung. Ich werde diese Antwort hier, falls jemand verlassen diese Suche später durch eine Google finden und eine Lösung muss für relativ Links.

Wenn Sie Ihre URLs der selteneren Form ./about/ waren dann wäre diese Lösung arbeiten. Browser behandeln würde (und Anzeige) die URL ./about/ als http://www.example.com/about/ ohne <base>-Tag oder als http://www.example.com/staging/about/, wenn Sie einen <base>-Tag in der Art und Weise oben gesetzt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top