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?
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:
Utilisation
<a href="/fruits/index.html">Back to Fruits List</a>
ou
<a href="../index.html">Back to Fruits List</a>
il suffit de mettre <a href="/">some link<a/>
, cela vous mènera à la racine du site
<a href="/fruits/index.html">Back to Fruits List</a>
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.
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>
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.