it-swarm.com.de

Unterschied zwischen relativem Pfad und absolutem Pfad in Javascript

Kleine Klarstellungen haben,

Meines Wissens sind dies die relativen und absoluten Pfade,

Completely relative: <img src="kitten.png"/>   
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">

Was ist der Unterschied zwischen Relativpfad und Absolutpfad?

Gibt es Leistungsprobleme bei der Verwendung dieser Pfade?

Werden wir für die Websites sicher sein?

Gibt es eine Möglichkeit, den absoluten Pfad in einen relativen Pfad zu konvertieren?

43
Rajasekhar

Was ist der Unterschied zwischen Relativpfad und Absolutpfad?

Einer muss in Bezug auf einen anderen URI berechnet werden. Der andere tut es nicht.

Gibt es Leistungsprobleme bei der Verwendung dieser Pfade?

Nichts bedeutendes.

Wir werden für die Websites sicher sein?

Nein

Gibt es eine Möglichkeit, den absoluten Pfad in einen relativen Pfad zu konvertieren?

In wirklich vereinfachte Begriffe: Bei der Arbeit von links nach rechts versuchen Sie, das Schema, den Hostnamen und dann die Pfadsegmente mit dem URI abzustimmen, mit dem Sie relativ zu sein versuchen. Stoppen Sie, wenn Sie eine Übereinstimmung haben.

40
Quentin

Der Pfad mit Bezug auf das Stammverzeichnis lautet absolute . Der Pfad mit Bezug auf das aktuelle Verzeichnis heißt relative .

49
shiva

Ganz relativ:

<img src="kitten.png"/>

dies ist in der Tat ein relativer Weg.

Absolut in jeder Hinsicht:

<img src="http://www.foo.com/images/kitten.png"/>

dies ist eine URL und kann in gewisser Weise als absoluter Pfad angesehen werden, aber es ist nicht repräsentativ für diese Angelegenheit.

Der Unterschied zwischen relativen und absoluten Pfaden besteht darin, dass Sie bei der Verwendung relativer Pfade das aktuelle Arbeitsverzeichnis als Referenz verwenden, während Sie bei absoluten Pfaden auf ein bestimmtes, bekanntes Verzeichnis verweisen. Relative Pfade sind nützlich, wenn Sie ein Programm erstellen, das Ressourcen aus bestimmten Ordnern verwenden muss, die mit dem Arbeitsverzeichnis als Ausgangspunkt geöffnet werden können.

Beispiel für relative Pfade:

  • image.png, das Äquivalent zu .\image.png (in Windows) oder ./image.png (irgendwo anders). Der . gibt explizit an, dass Sie einen Pfad Relativ zum aktuellen Arbeitsverzeichnis ausdrücken Dies wird jedoch impliziert, wenn der Pfad not an einem Stammverzeichnis ( mit einem Schrägstrich gekennzeichnet), daher müssen Sie ihn nicht unbedingt verwenden (außer in bestimmten Kontexten, in denen ein Standardverzeichnis (oder eine Liste der zu durchsuchenden Verzeichnisse) angewendet wird, sofern Sie dies nicht ausdrücklich angeben ein Verzeichnis).

  • ..\images\image2.jpg Auf diese Weise können Sie in einem Ordner in der Ordnerstruktur auf Ressourcen aus Verzeichnissen zugreifen. Der ..\ bedeutet, dass Sie den aktuellen Ordner verlassen haben.... Geben Sie das Verzeichnis ein, das sowohl den Arbeitsordner als auch den images-Ordner enthält. Verwenden Sie \ in Windows und / an anderer Stelle.

Beispiel für absolute Pfade:

  • D:\documents\something.doc
  • E:\music\good_music.mp3

und so weiter. 

27
user1508332

Stellen Sie sich vor, Sie haben ein Fenster zu http://www.foo.com/bar/page.htmlIn allen geöffnet (HTML, Javascript und CSS):

opened_url = http://www.foo.com/bar/page.html
base_path = http://www.foo.com/bar/
home_path = http://www.foo.com/
/kitten.png = Home_path/kitten.png
kitten.png = Base_path/kitten.png

In HTML und Javascript basiert der Basispfad auf dem geöffneten Fenster. In großen Javascript-Projekten benötigen Sie eine Variable BASEPATH oder root, um gelegentlich den Basispfad zu speichern. (wie this )

In CSS ist die geöffnete URL die Adresse, von der Ihre .css gespeichert oder geladen wird. In diesem Fall ist sie nicht mit Javascript identisch, wenn das Fenster geöffnet ist.

Um in absoluten Pfaden sicherer zu sein, wird empfohlen, // anstelle von http:// für mögliche zukünftige Migrationen nach https:// zu verwenden. Verwenden Sie es in Ihrem eigenen Beispiel folgendermaßen:

<img src="//www.foo.com/images/kitten.png">
9
Mehdi

Relative Pfade

Ein relativer Pfad geht davon aus, dass sich die Datei auf dem aktuellen Server befindet. Wenn Sie relative Pfade verwenden, können Sie Ihre Site offline erstellen und vor dem Hochladen vollständig testen.

Zum Beispiel:

php/webct/itr/index.php

.

Absolute Pfade

Ein absoluter Pfad bezieht sich auf eine Datei im Internet unter Verwendung der vollständigen URL. Absolute Pfade geben dem Browser genau an, wohin er gehen soll. 

Zum Beispiel:

http://www.uvsc.edu/disted/php/webct/itr/index.php

Absolute Pfade sind einfacher zu verwenden und zu verstehen. Es ist jedoch keine gute Praxis auf Ihrer eigenen Website. Wenn Sie relative Pfade verwenden, können Sie Ihre Site offline erstellen und vor dem Hochladen vollständig testen. Wenn Sie absolute Pfade verwenden, müssen Sie Ihren Code vor dem Hochladen ändern, damit er funktioniert. Dies wäre auch der Fall, wenn Sie Ihre Website jemals verschieben mussten oder wenn Sie den Domänennamen geändert haben. 

Referenz: http://openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503

8
N J

Ich denke, dieses Beispiel wird Ihnen helfen, dies einfacher zu verstehen.

Pfadunterschiede in Windows

Absoluter Windows-Pfad C:\Windows\calc.exe

Nicht absoluter Windows-Pfad (relativer Pfad) Calc.exe

Im obigen Beispiel enthält der absolute Pfad den vollständigen Pfad zur Datei und nicht nur die Datei im nicht absoluten Pfad. Wenn Sie sich in einem Verzeichnis ohne "calc.exe" befänden, würden Sie in diesem Beispiel eine Fehlermeldung erhalten. Wenn Sie jedoch einen absoluten Pfad verwenden, können Sie sich in einem beliebigen Verzeichnis befinden und der Computer weiß, wo die Datei "calc.exe" geöffnet wird.

Pfadunterschiede in Linux

Linux absoluter Pfad/home/users/c/computerhope/public_html/cgi-bin

Linux nicht absoluter Pfad (relativer Pfad) /Public_html/cgi-bin

In diesem Beispiel enthält der absolute Pfad den vollständigen Pfad zum Verzeichnis cgi-bin auf diesem Computer. So finden Sie den absoluten Pfad einer Datei in Linux. Da die meisten Benutzer den vollständigen Pfad nicht sehen möchten Ihre Aufforderung, die Aufforderung ist standardmäßig relativ zu ihrem persönlichen Verzeichnis, wie oben gezeigt. Um den vollständigen absoluten Pfad des aktuellen Verzeichnisses zu finden, verwenden Sie den Befehl pwd.

Es wird empfohlen, relative Dateipfade zu verwenden (wenn möglich).

Wenn Sie relative Dateipfade verwenden, sind Ihre Webseiten nicht an Ihre aktuelle Basis-URL gebunden. Alle Links funktionieren auf Ihrem eigenen Computer (localhost) sowie auf Ihrer aktuellen öffentlichen Domäne und Ihren zukünftigen öffentlichen Domänen. 

0

Relativ gehen:

  • Sie können ein in sich geschlossenes Verzeichnis (möglicherweise eine komprimierte Datei) Herunterladen und Verknüpfungen lokal von einer HTML- oder XML-Datei aus öffnen, ohne den Server zu erreichen. Dies erhöht die Geschwindigkeitsleistung erheblich, besonders wenn Sie sich mit einem langsamen Netzwerk befassen müssen.

Absolut werden:

  • Sie müssten die Netzwerkgeschwindigkeit schlucken, aber in Bezug auf die Sicherheit. Sie könnten verhindern, dass bestimmte Benutzer bestimmte Dateien sehen oder erhöhen.
0

Wenn Sie die relative Version von http://www.foo.com/abc verwenden, sucht Ihr Browser unter http://www.foo.com/abc/kitten.png nach dem Bild und würde 404 bekommen - nicht gefunden.

0
shim_