2010-09-29 6 views
0

Quelle est la différence entre? Je vous remercie.HTML Type de lien différent Question

<img src="images/file.jpg"></img> 

between 

<img src="/images/file.jpg"></img> 

between 

<img src="./images/file.jpg"></img> 

between 

<img src="../images/file.jpg"></img> 

Répondre

2

Vous devez en apprendre davantage sur relative and absolute paths.

Voici mes explications pour vos exemples, mais vous devriez vraiment lire le lien afin de comprendre les concepts.

Si l'URL base est "http://example.com/resources/" puis:

<img src="images/file.jpg"></img> 

obtiendrai:

http://example.com/resources/images/file.jpg 

Il ajoute simplement l'URL src à l'URL de base .


<img src="/images/file.jpg"></img> 

obtiendrai:

http://example.com/images/file.jpg 

Bacuse l'URL de l'image est ancrée (commence par /), il utilise le domaine et ajoute l'image src au domaine.


<img src="./images/file.jpg"></img> 

obtiendrai:

http://example.com/resource/images/file.jpg 

Dans ce cas, il utilise le chemin relatif pour le répertoire courant (.), qui est le répertoire de base (ressources).


<img src="../images/file.jpg"></img> 

obtiendrai:

http://example.com/images/file.jpg 

Dans ce cas, il utilise le chemin relatif pour le répertoire parent (..), ce qui en fait monter un répertoire, puis ajoutez le reste de le chemin.

+0

si et sont fonctionnellement identiques, non? – netrox

+0

@netrox - à peu près. Aucun vrai point à utiliser '.' – Oded

0

Les premier, troisième et dernier sont relatifs au chemin actuel. Dans le dernier, .. est le dossier parent, ce qui signifie que vous montez essentiellement d'un niveau dans la hiérarchie, et dans le second . est le dossier actuel, ce qui rend l'URI équivalent au premier. Le second est relatif à la racine, puisqu'il commence par /. En savoir plus sur les URI dans le HTML4 spec, ou en général sur Unix-style paths.

Ainsi, si vous êtes à website.com/folder/folder/index.html, les quatre URIs seraient équivalentes à ceci:

website.com/folder/folder/images/file.jpg 
website.com/images/file.jpg 
website.com/folder/folder/images/file.jpg 
website.com/folder/images/file.jpg 
+0

Non, ils sont tous relatifs. C'est-à-dire que l'agent utilisateur ajoutera des informations afin de créer un URI absolu afin qu'il puisse demander la ressource. La différence est dans ce qu'ils sont relatifs * à *. Le premier est relatif au fichier courant (et est à toutes fins utiles équivalent au troisième, "./..."), le second relatif à la racine du serveur, le troisième au répertoire courant et le quatrième au répertoire parent.Un bon argument peut être fait pour que les liens relatifs à la racine soient une bonne pratique pour tous les liens locaux, car il ne cassera pas si le document hôte se déplace.URI absolu inclut le protocole –

+0

Bon point Cependant, je ne suis pas d'accord avec l'affirmation que le dernier est relatif à son parent - il est relatif au dossier en cours, sauf que le dossier spécial '.. 'fait référence au dossier parent. – You