201 votes

Avoir des liens relatifs à la racine ?

Est-il possible d'avoir tous les liens sur une page relatifs au répertoire racine ?

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

Retour à la liste des fruits

Est-ce que ce lien pointera vers www.example.com/fruits/apples/fruits/index.html ou www.example.com/fruits/index.html ? Si c'est le premier cas, y a-t-il un moyen de le faire pointer vers le deuxième cas ?

356voto

David Thomas Points 111253

Une URL relative à la racine commence par un caractère /, pour ressembler à quelque chose comme [texte du lien](/repertoireDansRacine/nomFichier.html).

Le lien que vous avez posté : [Retour à la liste des fruits](fruits/index.html) pointe vers un fichier html situé dans un répertoire nommé fruits, le répertoire étant dans le même répertoire que la page html dans laquelle ce lien apparaît.

Pour en faire une URL relative à la racine, modifiez-le comme suit :

Retour à la liste des fruits

Edité en réponse à la question, dans les commentaires, de l'OP :

Donc en faisant / cela le rendra relatif à www.example.com, y a-t-il un moyen de spécifier ce qu'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, en préfixant l'URL, dans les attributs href ou src, avec un / fera que le chemin est relatif au répertoire racine. Par exemple, étant donné la page html à l'adresse www.example.com/fruits/pommes.html, le a de href="http://stackoverflow.com/legumes/carottes.html" pointera vers la page www.example.com/legumes/carottes.html.

L'élément balise base vous permet de spécifier l'URI de base pour cette page (bien que la balise base doive être ajoutée à chaque page dans laquelle il est 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 BASE suivante et la déclaration A :

   Nos produits

L'URI relative "../cages/oiseaux.gif" serait résolue en :

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

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

Lecture suggérée :

3 votes

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

3 votes

Est-il possible de le trouver de manière dynamique ? Quelque chose comme ~ en .NET ? Que se passera-t-il si dans chaque environnement vous avez un nom de dossier différent?

24voto

amit_g Points 15415

Utilisez

Retour à la liste des fruits

ou

Retour à la liste des fruits

2 votes

../chemin a fonctionné mais /chemin n'a pas fonctionné pour moi dans Expression Web en l'utilisant dans un fichier CSS. (Le fichier était dans /Répertoire et référence /DossierDifférent

6voto

A-Majeed Points 1

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

alors insérez simplement

juste après la balise titre.

ainsi chaque fois que vous utilisez des URL relatives à la racine par exemple

serait résolu en "http://www.votresite.com/app2/Accounts/Login"

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

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

4 votes

Votre réponse ne fonctionne tout simplement pas. "tilde slash" fonctionne côté serveur dans les solutions ASP.NET. Cette question ne concerne pas les solutions ASP.NET côté serveur.

1 votes

Je vois ta théorie mais ça MARCHE (à la fois en pratique et en théorie). Le serveur remplace le "tilde slash" par ce qui est la racine de ton application lors de la génération de l'HTML. L'as-tu essayé d'abord?

0 votes

Bien sûr, j'ai essayé. Les serveurs Web NE remplacent PAS le tilde barre oblique par la racine d'une application. Seules les applications ASP.NET le font. Dans d'autres environnements, il n'y a pas de concept tel qu'une "application".

5voto

Marcello Points 89

Il suffit de mettre [quelques liens](/), cela vous mènera à la page d'accueil du site

3voto

moe Points 2718
Retour à la liste des fruits

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X