Avoir des liens relatifs à root?

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 en disant:

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

Ce lien pointerait-il vers www.example.com/fruits/apples/fruits/index.html ou www.example.com/fruits/index.html? Si la première, est-il un moyen de pointer à la 2e place?

132
demandé sur BlargleMonster 2011-04-06 03:01:43

7 réponses

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

, Le lien que vous avez posté: <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 qui est 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>

Édité en réponse à la question, dans les commentaires, de L'OP:

Ce faisant / le rendra relatif à www.example.com, existe-t-il un moyen de spécifier quelle est la racine, par exemple si je veux que la racine soit www.example.com/fruits dans www.example.com/fruits/apples/apple.html?

Oui, préfacer L'URL, dans les attributs href ou src, avec un / rendra le chemin relatif au répertoire racine. Par exemple, pour la page html à www.example.com/fruits/apples.html, le a de href="/vegetables/carrots.html" lien vers la page www.example.com/vegetables/carrots.html.

Le base tag élément vous permet de spécifier l'URI de base pour cette page (bien que la balise base devrait être ajoutée à chaque page dans laquelle il était nécessaire d'utiliser une base spécifique, pour cela, je vais simplement citer l'exemple du W3:

Par exemple, étant donné la déclaration de BASE suivante et une déclaration:

<!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/oiseaux.gif " résoudrait à:

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

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

Suggéré lecture:

238
répondu David Thomas 2014-02-12 05:26:40

Utiliser

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

Ou

<a href="../index.html">Back to Fruits List</a>
16
répondu amit_g 2011-04-05 23:04:07
<a href="/fruits/index.html">Back to Fruits List</a>
3
répondu moe 2011-04-05 23:04:30

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

3
répondu Marcello 2013-08-07 23:37:18

Si vous créez L'URL à partir du Côté Serveur d'un ASP.NET application , et déployer votre site Web dans un répertoire virtuel (par exemple app2) dans votre site web, c'est-à-dire http://www.yourwebsite.com/app2/

Ensuite, insérez simplement

<base href="~/" />

Juste après la balise de titre.

Donc, chaque fois que vous utilisez root relative, par exemple

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

Permettrait de résoudre à "http://www.yourwebsite.com/app2/Accounts/Login"

De Cette façon, vous pouvez toujours pointez sur vos fichiers relativement-absolument;)

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

1
répondu A-Majeed 2014-12-13 21:03:56

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 lorsque vous êtes sur une machine locale, utilisez le code suivant "../ "comme chemin relatif racine

<a href="../fruits/index.html">Back to Fruits List</a>
1
répondu king zecole 2017-08-29 19:24:23

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

`logo.png`

, Vous devriez donner src URL commençant par / comme suit:

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

Ce code fonctionne dans tous les répertoires sans aucun soucis, même si vous êtes dans branches/europe/about.php encore le logo peut être vu ici.

0
répondu Tum Ozel Okullar 2017-01-12 11:13:07