Bonjour,
Je dois définir un algorithme permettant à mon générateur HTML de gérer au mieux les URL des liens hypertexte (internes et externes), lors du processus de sérialisation.
Après consultation de différents articles, le choix est grosso modo le suivant :
a) soit déclarer une balise <base> dans la section <head> et n'utiliser ensuite que des URL relatives dans le corps de la page HTML
b) soit ne pas mettre en place la balise <base> et n'utiliser ensuite que des URL absolues
Si je raisone en analyste / développeur Java, ma première décision est de factoriser au maximum pour diminuer le besoin en bande passante et donc retenir la solution (a), le générateur étant capable de calculer automatiquement le positionnement relatif d'une ressource (page, css, images, etc.) par rapport à une autre.
Toutefois, certains articles précisent que l'utilisation de la balise <base> peut s'avérer problématique avec des librairies externes de type Javascript.
Ayant parcouru le code source de quelques sites web, je constate par exemple qu'un site faisant 43 appels à des URL ayant un début de "path" commun de 41 caractères nécessitent un peu plus de 1700 octets (minimum, selon jeu de caractères utilisé), alors qu'il s'agit intrinséquement de la même série de caractères dupliquée, pouvant donc être ramenée au rang de "constante" dans une balise <base>.
Ce constat semble notamment vrai sur des sites gérés via un CMS tel que Wordpress.
Se pose donc la question de savoir :
a) si dans vos développements vous préconisez et utilisez : plutôt la solution (a) ou plutôt la solution (b) évoquées supra
b) dans l'hypothèse de la solution (a), si vous avez rencontré des difficultés liées aux navigateurs ou à l'environnement utilisateur ayant eu pour effet de briser les liens hypertexte de la page
Merci d'avance de vos réponses en retour.
Salut,
je pense que l'approche que tu as ne s'applique pas vraiment au HTML. Ce n'est pas un langage de développement, donc le raisonnement devrait être beaucoup plus simple.

Concrètement, on peut utiliser des liens relatifs sans la présence de la balise <base> tout comme on pourra toujours spécifier des liens absolues si celle-ci est présente.

Le choix entre liens absolus et liens relatifs dépend un peu des cas. Chacun a ses avantages et inconvénients mais j'imagine que les chemins relatifs sont à privilégier.

Quand à l'utilisation de la balise <base>, elle peut être utile si on veut justement donner une base pour les liens externes des documents utilisés dans nos pages. C'est typiquement pratique qu'on a une arborescence de site un peu complexe et où on voudra éviter les chemins du genre "../../dossier/page.html". Mais bon, je ne sais pas trop si c'est un argument.
Personnellement je l'utilise assez souvent. Il faut juste être bien au courent de son mode de fonctionnement.
Bonsoir,
Merci pour tes précisions et ton retour d'expérience.
En fait, je ne conçois pas HTML comme un language de développement, ce qu'il n'est pas et n'a jamais été, mais bien comme le résultat produit (sérialisé) par le générateur qui, lui, est bien écrit en Java.
Le point qui me posait problème était surtout l'interaction entre librairies JS et balise <base>.
A priori, le commentaire que j'avais lu à ce sujet était peut-être un peu trop pessimiste...