web-dev-qa-db-fra.com

Différence entre chemin relatif et chemin absolu en javascript

Avoir de petites clarifications,

A ma connaissance, ce sont les chemins relatifs et absolus,

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

Quelle est la différence entre le chemin relatif et le chemin absolu?

Existe-t-il des problèmes de performances lors de l'utilisation de ces chemins?

Aurons-nous des sites sécurisés?

Est-il possible de convertir un chemin absolu en un chemin relatif?

43
Rajasekhar

Quelle est la différence entre le chemin relatif et le chemin absolu?

L'un doit être calculé par rapport à un autre URI. L'autre pas.

Existe-t-il des problèmes de performances lors de l'utilisation de ces chemins?

Rien d'important.

Nous aurons toute sécurité pour les sites?

Non

Est-il possible de convertir un chemin absolu en un chemin relatif?

Dans vraiment termes simplifiés: En travaillant de gauche à droite, essayez de faire correspondre le schéma, le nom d’hôte, puis les segments de chemin avec l’URI que vous essayez de définir. Arrêtez quand vous avez un match.

40
Quentin

Le chemin faisant référence au répertoire racine est appelé absolute . Le chemin faisant référence au répertoire courant est appelé relatif .

49
shiva

Complètement relatif:

<img src="kitten.png"/>

c'est un chemin relatif en effet.

Absolue à tous égards:

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

c'est une URL, et cela peut être vu d'une certaine manière comme un chemin absolu, mais ce n'est pas représentatif.

La différence entre les chemins relatifs et absolus réside dans le fait que lorsque vous utilisez des chemins relatifs, vous prenez comme référence le répertoire de travail actuel, tandis que pour les chemins absolus, vous vous référez à un certain répertoire bien connu. Les chemins relatifs sont utiles lorsque vous créez un programme devant utiliser les ressources de certains dossiers pouvant être ouverts en utilisant le répertoire de travail comme point de départ.

Exemple de chemins relatifs:

  • image.png, qui équivaut à .\image.png (sous Windows) ou ./image.png (ailleurs). Le . spécifie explicitement que vous exprimez un chemin Relatif au répertoire de travail en cours, Mais ceci est implicite à chaque fois que le chemin ne commence pas par un répertoire racine (. désigné par une barre oblique), vous n’avez donc pas à l’utiliser obligatoirement (sauf dans certains contextes où un répertoire par défaut .__ (ou une liste de répertoires dans laquelle effectuer la recherche) sera appliqué, sauf si vous le spécifiez explicitement un répertoire).

  • ..\images\image2.jpg De cette façon, vous pouvez accéder aux ressources des répertoires une étape dans l’arborescence des dossiers. Le ..\ signifie que vous avez quitté le dossier actuel, en entrant dans le répertoire contenant les dossiers de travail et images. Encore une fois, utilisez \ dans Windows et / n'importe où ailleurs.

Exemple de chemins absolus:

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

etc. 

27
user1508332

Imaginez que vous ayez une fenêtre ouverte sur http://www.foo.com/bar/page.htmlEn toutes (HTML, Javascript et 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

En HTML et Javascript, le chemin de base est basé sur la fenêtre ouverte. Dans les grands projets javascript, vous devez utiliser une variable BASEPATH ou root pour stocker le chemin de base occasionnellement. (comme this )

En CSS, l’URL ouverte est l’adresse dans laquelle votre fichier .css est stocké ou chargé. Ce n'est pas la même chose que javascript avec la fenêtre actuellement ouverte dans ce cas.

Et pour plus de sécurité dans les chemins absolus, il est recommandé d'utiliser // au lieu de http:// pour d'éventuelles migrations futures vers https://. Dans votre propre exemple, utilisez-le de cette façon:

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

Chemins relatifs

Un chemin relatif suppose que le fichier se trouve sur le serveur actuel. L'utilisation de chemins relatifs vous permet de construire votre site hors ligne et de le tester complètement avant de le télécharger.

Par exemple:

php/webct/itr/index.php

.

Sentiers Absolus

Un chemin absolu fait référence à un fichier sur Internet utilisant son URL complète. Les chemins absolus indiquent au navigateur précisément où aller. 

Par exemple:

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

Les chemins absolus sont plus faciles à utiliser et à comprendre. Cependant, ce n'est pas une bonne pratique sur votre propre site web. D'une part, l'utilisation de chemins relatifs vous permet de construire votre site hors ligne et de le tester complètement avant de le télécharger. Si vous utilisiez des chemins absolus, vous devriez changer votre code avant de le télécharger afin de le faire fonctionner. Ce serait également le cas si vous deviez déplacer votre site ou si vous changiez de nom de domaine. 

Référence: http://openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503

8
N J

Je pense que cet exemple vous aidera à comprendre ceci plus simplement.

Différences de chemin sous Windows

Chemin absolu Windows C:\Windows\calc.exe

Chemin non absolu de Windows (chemin relatif) Calc.exe

Dans l'exemple ci-dessus, le chemin absolu contient le chemin complet du fichier et pas seulement le fichier tel qu'il apparaît dans le chemin non absolu. Dans cet exemple, si vous vous trouviez dans un répertoire ne contenant pas "calc.exe", vous obtiendrez un message d'erreur. Cependant, lorsque vous utilisez un chemin absolu, vous pouvez vous trouver dans n’importe quel répertoire et l’ordinateur saurait où ouvrir le fichier "calc.exe".

Différences de chemins sous Linux

Chemin absolu Linux/home/users/c/computerhope/public_html/cgi-bin

Chemin non absolu de Linux (chemin relatif) /Public_html/cgi-bin

Dans cet exemple, le chemin absolu contient le chemin complet du répertoire cgi-bin sur cet ordinateur . Comment trouver le chemin absolu d’un fichier sous Linux Étant donné que la plupart des utilisateurs ne souhaitent pas voir le chemin complet Leur invite, par défaut l'invite est relative à leur répertoire personnel comme indiqué ci-dessus. Pour trouver le chemin absolu complet du répertoire en cours, utilisez la commande pwd.

Il est recommandé d’utiliser des chemins de fichiers relatifs (si possible).

Lorsque vous utilisez des chemins de fichiers relatifs, vos pages Web ne seront pas liées à votre URL de base actuelle. Tous les liens fonctionneront sur votre propre ordinateur (localhost) ainsi que sur votre domaine public actuel et vos futurs domaines publics. 

0
Aravind Srinivas

Aller de parent:

  • Vous pouvez télécharger un répertoire autonome (peut-être un fichier compressé) Et ouvrir des liens à partir d'un fichier HTML ou XML localement sans qu'il soit nécessaire d'accéder au serveur Cela augmente considérablement les performances de vitesse, surtout si vous devez gérer un réseau lent.

Going Absolute:

  • Vous devrez peut-être avaler la vitesse du réseau, mais en termes de sécuritévous pourriez empêcher certains utilisateurs de voir certains fichiers ou augmenterle trafic réseau si (et seulement si ...) cela serait bon pour vous.
0

Si vous utilisez la version relative sur http://www.foo.com/abc votre navigateur examinera http://www.foo.com/abc/kitten.png pour l’image et obtiendrait 404 - Introuvable.

0
shim_