web-dev-qa-db-fra.com

Les liens ne remontent pas un répertoire?

c'est probablement une question idiote et j'ai la réponse moi-même mais je veux savoir si je fais quelque chose de mal. J'ai un site Web, appelons-le www.mysite.com. Dans ce site, j'ai quelques FAQ mais la personne qui a construit le site a enregistré les pages FAQ sous un répertoire sur le site nommé "FAQs".

Par exemple, une page FAQ serait située à:

www.mysite.com/pages/en/faqs/faq-page1.html.

Noter la pages/en/ répertoire. Idéalement, je voudrais que toutes les pages soient enregistrées sous www.mysite.com/index.html etc mais je ne peux pas changer cela.

Quoi qu'il en soit, lorsque je suis sur l'une de ces pages FAQ, et j'essaie de créer un lien pour dire la page d'accueil index.html la navigation n'ira pas vers la page. Ainsi, par exemple, lorsque je suis sur:

www.mysite.com/pages/en/faqs/faq-page1.html

et j'essaie de créer un lien vers la page d'accueil

www.mysite.com/pages/en/index.html (qui est l'endroit où la page d'index est enregistrée) la navigation ne fonctionnera pas. Au lieu de cela, il essaiera d'aller à www.mysite.com/pages/en/faqs/index.html.

Maintenant, je suppose que cela se produit parce que je suis dans le répertoire "faq", mais comment revenir au répertoire racine lors de la liaison? Le code du lien est simplement <a href="index.html">Home</a>. Je pourrais bien sûr simplement mettre le lien complet www.mysite.com/pages/en/index.html, ce qui résoudrait cela, mais existe-t-il une autre solution? Désolé pour un si long post et j'ai peut-être pu mieux l'expliquer mais je ne peux pas: S

Merci d'avance.

25
zik

Vous devez donner un chemin de fichier relatif de <a href="../index.html">Home</a>

Vous pouvez également spécifier un lien à partir de la racine de votre site avec <a href="/pages/en/index.html">Home</a>

.. et . ont des significations spéciales dans les chemins de fichiers, .. signifie un répertoire et . signifie le répertoire courant.

alors <a href="index.html">Home</a> est le même que <a href="./index.html">Home</a>

41
Robb

Il existe deux types de chemins: absolus et relatifs. Il en va de même pour les fichiers de votre disque dur et les répertoires d'une URL.

Les chemins absolus commencent par une barre oblique. Ils pointent toujours vers le même emplacement, peu importe où vous les utilisez:

  • /pages/en/faqs/faq-page1.html

Les chemins relatifs sont les autres (tout ce qui ne commence pas par une barre oblique). L'emplacement vers lequel ils pointent dépend de l'endroit où vous les utilisez

  • index.html est:
    • /pages/en/faqs/index.html si appelé de /pages/en/faqs/faq-page1.html
    • /pages/index.html si appelé de /pages/example.html
    • etc.

Il existe également deux noms de répertoire spéciaux: . et ..:

  • . signifie "répertoire courant"
  • .. signifie "répertoire parent"

Vous pouvez les utiliser pour créer des chemins relatifs:

  • ../index.html est /pages/en/index.html si appelé de /pages/en/faqs/faq-page1.html
  • ../../index.html est /pages/index.html si appelé de /pages/en/faqs/faq-page1.html

Une fois que vous connaissez les termes, il est facile de comprendre ce qui échoue et comment y remédier. Vous avez deux options:

  • Utiliser des chemins absolus
  • Fixez vos chemins relatifs
19
Álvaro González

Pour remonter un répertoire dans un lien, utilisez ... Cela signifie "remonter d'un répertoire", donc votre lien ressemblera à ceci:

<a href="../index.html">Home</a>
6
lonesomeday