mayo 23, 2007

Etiqueta base del HTML

En el desarrollo de un sitio se crean carpetas reales o carpetas ficticias aplicando las URL Amigables, esto provoca que cuando se vinculan imágenes o enlaces internos hay que ir caminos atrás y luego caminos alante...


Ejemplo:


Tenemos está dirección:


www.dominio.com/categoria/fecha/titulo/


En esa página hay varias imágenes o varios enlaces internos, en el caso de las imágenes las tenemos guardadas en una carpeta en la raíz del sitio que se llama imagenes.


Cuando insertamos una imagen en la página de la dirección de arriba quedaría el código HTML así:


<img src="../../../imagenes/imagen.jpg" alt="texto alternativo" />


Retrocediendo tres pasos (../) hacia la raíz del sitio, luego entramos en la carpeta imagenes y seguido vinculamos la imagen (.jpg). Esto funciona igual para cualquier tipo de ficheros o enlace:


<a href="../../../paginas/enlace/" title="texto que describe el enlace">Enlace</a>


Esto provoca grandes problemas cuando el sitio es dinámicos, programado en PHP, u otro lenguaje, ya que categoria, fecha y titulo son valores de variables pasadas por URL y no carpetas reales.


Una solución a este problema es mediante la etiqueta <base> que especifica una URL base para todos los enlaces en una página.


Ejemplo:


<base href="<?php echo "http://". $_SERVER['HTTP_HOST']."/";?>" />


Esto imprimiría en el código:


<base href="http://www.dominio.com/" />


Vinculando todos los ficheros y enlaces interno a partir de esa base que en este caso es la raíz del sitio:


Ejemplo:


<img src="/imagenes/imagen.jpg" alt="texto alternativo" />


<a href="/paginas/enlace/" title="texto alternativo">Enlace</a>


<link href="/css/style.css" media="screen" rel="stylesheet" type="text/css" />


Cualquier comentario y sugerencia será bien recibido

3 comentarios:

Acido 69 dijo...

good, esta no me la conocía.

Carlos Eugenio dijo...

El problema cuando tienes el BASE establecido es que los enlaces internos no funcionarán, salvo que alguien explique cómo; o sea, si hay dentro del documento que está en
www.dominio.com/categoria/fecha/titulo/
un enlace que diga:
<a href="#partedos">ir al capitulo 2</A>
para brincar a una sección dentro del mismo documento, lo que sucede por el efecto de la etiqueta BASE es que buscará ir a http://www.dominio.com/#partedos y no al sitio deseado. Se irá a la pagina inicial del sitio.
Así que la pregunta sería, para tratar de conservar la etiqueta BASE, ¿cómo hacer enlaces internos o cómo anular el efecto de BASE a ciertos enlaces?

Alex Arboleda dijo...

que buen aporte, me ahorro horas de desarrollo...