web-dev-qa-db-fra.com

Avoir des liens relatifs à la racine?

Existe-t-il un moyen de faire en sorte que tous les liens d’une page soient relatifs au répertoire racine?

Par exemple, sur www.example.com/fruits/apples/Apple.html je pourrais avoir un lien disant:

<a href="fruits/index.html">Back to Fruits List</a>

Ce lien pointe-t-il sur www.example.com/fruits/apples/fruits/index.html ou www.example.com/fruits/index.html? Si le premier, y a-t-il un moyen de le faire pointer vers le second?

139
Click Upvote

Une URL relative à la racine commence par un caractère /, pour ressembler à <a href="/directoryInRoot/fileName.html">link text</a>.

Le lien que vous avez publié: <a href="fruits/index.html">Back to Fruits List</a> est un lien vers un fichier html situé dans un répertoire nommé fruits, le répertoire se trouvant dans le même répertoire que la page html dans laquelle ce lien apparaît.

Pour en faire une URL relative à la racine, remplacez-la par:

<a href="/fruits/index.html">Back to Fruits List</a>

Edited en réponse à la question, aux commentaires, de OP:

Ainsi, je vais le rendre relatif à www.example.com, existe-t-il un moyen de spécifier la racine, par exemple, si je veux que la racine soit www.example.com/fruits dans www.example.com/fruits/ pommes/Apple.html?

Oui, préfacer l'URL, dans les attributs href ou src, d'un / rendra le chemin relatif au répertoire racine. Par exemple, étant donné que la page html est à www.example.com/fruits/apples.html, la a de href="/vegetables/carrots.html" renverra à la page www.example.com/vegetables/carrots.html.

L'élément base tag vous permet de spécifier la base-uri de cette page (bien que la balise base soit ajoutée à chaque page dans laquelle il est nécessaire d'utiliser une base spécifique pour cela, je citerai simplement l'exemple du W3:

Par exemple, étant donné la déclaration BASE et la déclaration A suivantes:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">
<HTML>
 <HEAD>
   <TITLE>Our Products</TITLE>
   <BASE href="http://www.aviary.com/products/intro.html">
 </HEAD>

 <BODY>
   <P>Have you seen our <A href="../cages/birds.gif">Bird Cages</A>?
 </BODY>
</HTML>

l'URI relatif "../cages/birds.gif" se présentera comme suit:

http://www.aviary.com/cages/birds.gif

_ { Exemple cité à partir de: http://www.w3.org/TR/html401/struct/links.html#h-12.4 .

Lecture suggérée:

256
David Thomas

Utilisation

<a href="/fruits/index.html">Back to Fruits List</a>

ou

<a href="../index.html">Back to Fruits List</a>
18
amit_g

il suffit de mettre <a href="/">some link<a/>, cela vous mènera à la racine du site

4
Marcello
<a href="/fruits/index.html">Back to Fruits List</a>
3
moe

Si vous créez l'URL à partir du côté serveur d'une application ASP.NET et déployez votre site Web dans un répertoire virtuel (par exemple, app2) de votre site Web, c'est-à-dire____ http://www.votresiteweb.com/app2/

puis simplement insérer

<base href="~/" />

juste après la balise de titre.

donc chaque fois que vous utilisez un parent relatif, par exemple. 

<a href="/Accounts/Login"/> 

résoudrait " http://www.votresiteweb.com/app2/Accounts/Login "

De cette façon, vous pouvez toujours pointer vos fichiers de manière relativement absolue;) 

Pour moi, c'est la solution la plus flexible.

2
A-Majeed

Utilisez ce code "./" en tant que root sur le serveur car cela fonctionne pour moi

<a href="./fruits/index.html">Back to Fruits List</a>

mais quand vous êtes sur une machine locale, utilisez le code suivant "../" comme chemin relatif racine

<a href="../fruits/index.html">Back to Fruits List</a>
0
king zecole

Pour donner une URL à une balise d’image qui localise le répertoire images/ à la racine, comme 

`logo.png`

vous devriez donner l'URL src commençant par / comme suit:

<img src="/images/logo.png"/>

Ce code fonctionne dans tous les répertoires sans aucun problème, même si vous êtes dansbranches/europe/about.php, mais le logo peut toujours être vu.

0
Tum Ozel Okullar