Posso omettere il nome di dominio per href nel tag base HTML?


8

Attualmente sul mio sito Web, utilizzo un tag di base HTML per abbreviare gli URL nei tag di ancoraggio. Tutti gli URL sul mio sito appartengono a un dominio. Per una conformità del 100%, utilizzo un URL assoluto. per esempio:

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

Ho guardato su Internet per vedere se in qualche modo posso accorciarlo e farlo funzionare ancora nei browser inventati negli ultimi 10 anni. Volevo fare qualcosa del tipo:

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

La mia domanda è, se avessi usato il codice sopra, i principali browser come Internet Explorer non funzionerebbero? o ci sono bug nei principali browser con l'accorciamento di questo tag? Voglio provare a omettere il nome di dominio ma far funzionare ancora il mio sito con tutti i browser creati negli ultimi 10 anni, anche se ciò significa includere un tag speciale per un browser specifico, forse ho bisogno di qualcosa del tipo:

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

Qual è la soluzione qui? potrei semplicemente evitare l'omissione del dominio e ogni browser sarebbe contento o devo fare qualcosa di speciale per alcuni browser per soddisfare la mia idea?

Risposte:


6

No. L'href deve puntare a un URI assoluto . Il relativo non è consentito su un elemento base.

Questo attributo specifica un URI assoluto che funge da URI di base per la risoluzione di URI relativi.

Lo standard HTML5 dice , in riferimento all'attributo href di <base>:

L'URL di base del documento di un oggetto Document è l'URL assoluto


1
Non devono essere assoluti secondo questo : "L'URL di base da utilizzare in tutto il documento per indirizzi URL relativi .... Sono consentiti URI assoluti e relativi."
Stephen Ostermiller

Essere in grado di specificare URI relativi sembrerebbe essere un cambiamento in HTML5. Le specifiche per HTML 4.01 affermano certamente che questo dovrebbe essere un URI assoluto. Questo potrebbe essere un problema per l'OP se vogliono supportare i browser "di 10 anni" ?!
MrWhite,

@StephenOstermiller Bene, invece, diamo un'occhiata allo standard che afferma che l'href deve contenere un "URL del documento" e un URL del documento è definito come "l'URL assoluto". Se ci sono differenze, ora, rispetto a HTML 4.01 , come sottolineato da w3dk, allora non lo so e non mi sono preoccupato di guardare.
Rob,

1
Penso che devi leggere un po 'più avanti il ​​documento ... "L'URL di base del documento di un oggetto Document è l'URL assoluto ottenuto eseguendo questi passaggi secondari: " ... "l'URL di base del documento è l' URL di base bloccato del primo elemento base nel documento che ha un attributo href ". Sfortunatamente il documento WhatWG non sembra spiegare ulteriormente (almeno il collegamento interno per "URL di base bloccato" non ha endpoint).
MrWhite,

1
Ma le specifiche a w3.org non spiega ulteriormente: "Per impostare l' URL di base congelato , di risolvere il valore dei contenuti href dell'elemento dell'attributo relativo alla URL di base fallback del documento, se questo è successo, impostare l'URL di base congelato al conseguente assoluta URL". L '"URL di base di fallback del documento" è fondamentalmente l'URL assoluto del documento corrente. È un po 'prolisso, ma suppongo che ora puoi utilizzare gli URL relativi nell'elemento BASE. L'URL assoluto corrispondente verrà quindi risolto da questo.
MrWhite,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.