Puis-je omettre le nom de domaine pour href dans la balise de base HTML?


8

Actuellement sur mon site Web, j'utilise une balise de base HTML pour raccourcir les URL dans les balises d'ancrage. Toutes les URL de mon site appartiennent à un seul domaine. Pour une conformité à 100%, j'utilise une URL absolue. par exemple:

<base href="http://www.example.com/path/to/specialpage/">

J'ai regardé sur Internet pour voir si je pouvais raccourcir cela et le faire fonctionner dans les navigateurs inventés au cours des 10 dernières années. Je voulais faire quelque chose comme:

<base href="/path/to/specialpage/">

Ma question est la suivante: si j'utilisais le code ci-dessus, les principaux navigateurs comme Internet Explorer tomberaient-ils en panne? ou y a-t-il des bogues dans les principaux navigateurs avec le raccourcissement de cette balise? Je veux essayer d'omettre le nom de domaine tout en faisant fonctionner mon site avec tous les navigateurs créés au cours des 10 dernières années, même si cela signifie inclure une balise spéciale pour un navigateur spécifique, peut-être ai-je besoin de quelque chose comme:

<!-- firefoxpatchID=1 -->
<base href="/path/to/specialpage/">
<!-- endfirefoxpatch -->

Quelle est la solution ici? pourrais-je me contenter d'omettre le domaine et tous les navigateurs seraient satisfaits ou dois-je faire quelque chose de spécial pour certains navigateurs afin de tenir compte de mon idée?

Réponses:


6

Non. Le href doit pointer vers un URI absolu . La relation n'est pas autorisée sur un élément de base.

Cet attribut spécifie un URI absolu qui sert d'URI de base pour la résolution des URI relatifs.

La norme HTML5 dit , en référence à l'attribut href de <base>:

L'URL de base du document d'un objet Document est l'URL absolue


1
Ils ne doivent pas être absolus selon ceci : "L'URL de base à utiliser dans tout le document pour les adresses URL relatives .... Les URI absolus et relatifs sont autorisés."
Stephen Ostermiller

La possibilité de spécifier des URI relatifs semble être un changement dans HTML5. La spécification pour HTML 4.01 indique certainement que cela devrait être un URI absolu. Cela pourrait être une préoccupation pour l'OP s'ils veulent prendre en charge les navigateurs "10 ans"?!
MrWhite

@StephenOstermiller Eh bien, regardons plutôt la norme qui stipule que le href doit contenir une "URL de document" et une URL de document est définie comme "l'URL absolue". S'il y a des différences, maintenant, par rapport à HTML 4.01 , comme l'a souligné w3dk, alors je ne sais pas et je n'ai pas pris la peine de regarder.
Rob

1
Je pense que vous devez lire le document un peu plus loin ... "L'URL de base de document d'un objet Document est l'URL absolue obtenue en exécutant ces sous-étapes: " ... "l'URL de base de document est l' URL de base figée du premier élément de base dans le document qui a un attribut href ". Malheureusement, le document WhatWG ne semble pas expliquer davantage (au moins le lien interne pour "URL de base figée" n'a pas de point final).
MrWhite

1
Mais la spécification de w3.org explique plus en détail: "Pour définir l' URL de base figée , résolvez la valeur de l'attribut de contenu href de l'élément par rapport à l'URL de base de secours du document; si cela réussit, définissez l'URL de base figée sur l' absolu résultant URL ". L'URL de base de secours du document est fondamentalement l'URL absolue du document actuel. C'est un peu verbeux, mais je suppose que cela signifie que vous pouvez maintenant utiliser des URL relatives dans l'élément BASE. L'URL absolue correspondante serait alors résolue à partir de cela.
MrWhite
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.