Posso omitir o nome de domínio para href na tag base HTML?


8

Atualmente no meu site, uso uma tag base HTML para encurtar URLs em tags âncora. Todos os URLs do meu site pertencem a um domínio. Para 100% de conformidade, eu uso um URL absoluto. por exemplo:

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

Procurei na internet para descobrir se de alguma forma posso encurtar isso e continuar funcionando em navegadores inventados nos últimos 10 anos. Eu queria fazer algo como:

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

Minha pergunta é: se eu usasse o código acima, os principais navegadores como o Internet Explorer quebrariam? ou há erros nos principais navegadores com a redução dessa tag? Quero tentar omitir o nome de domínio e ainda assim fazer com que meu site funcione com todos os navegadores criados nos últimos 10 anos, mesmo que isso signifique incluir uma tag especial para um navegador específico, talvez seja necessário algo como:

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

Qual é a solução aqui? eu poderia simplesmente omitir o domínio e todos os navegadores ficariam felizes ou preciso fazer algo especial em determinados navegadores para acomodar minha ideia?

Respostas:


6

Não. O href deve apontar para um URI absoluto . Relativo não é permitido em um elemento base.

Este atributo especifica um URI absoluto que atua como o URI base para resolver URIs relativos.

O padrão HTML5 diz , em referência ao atributo href de <base>:

O URL base do documento de um objeto Document é o URL absoluto


11
Eles não precisam ser absolutos de acordo com o seguinte : "O URL base a ser usado em todo o documento para endereços de URL relativos ... URIs absolutos e relativos são permitidos."
Stephen Ostermiller

Ser capaz de especificar URIs relativos parece ser uma alteração no HTML5. A especificação do HTML 4.01 certamente afirma que esse deve ser um URI absoluto. Isso pode ser uma preocupação para o OP, se eles desejam suportar navegadores de "10 anos" ?!
precisa saber é o seguinte

@StephenOstermiller Bem, em vez disso, vejamos o padrão que afirma que o href deve conter um "URL do documento" e um URL do documento é definido como "o URL absoluto". Se existem diferenças, agora, em comparação com o HTML 4.01 , como apontado pelo w3dk, então não sei e não me preocupei em procurar.
Rob

11
Eu acho que você precisa ler o documento um pouco mais ... "O URL base do documento de um objeto Document é o URL absoluto obtido executando estas subetapas: " ... "o URL base do documento é o URL base congelado do primeiro elemento base no documento que possui um atributo href ". Infelizmente, o documento do WhatWG parece não explicar mais (pelo menos o link interno para "URL base congelada" não tem ponto de extremidade).
precisa saber é o seguinte

11
Mas a especificação em w3.org explica mais: "Para definir o URL base congelado , resolva o valor do atributo de conteúdo href do elemento em relação ao URL base substituto do Documento; se isso for bem-sucedido, configure o URL base congelado como o absoluto resultante URL ". O "URL base de fallback do documento" é basicamente o URL absoluto do documento atual. É um pouco prolixo, mas considero que agora você pode usar URLs relativos no elemento BASE. O URL absoluto correspondente seria então resolvido a partir disso.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.