Anotaciones discontínuas, en el tiempo y en su forma (Ruben Divall)

Rubendivall.es »  Blog » Programación Web » Urls relativas, <base> y #anclas

Urls relativas, <base> y #anclas

Publicado el: 16/01/2009 - 13:50

<base href="url" />, es una etiqueta html, que como su propio nombre indica sirve para fijar la base de nuestros documentos xhtml. Es muy útil para poder utilizar enlaces relativos a páginas de nuestro sitio, hojas de estilo, scripts, imágenes y recursos sin tener que indicar la url absoluta del recurso, es decir nos permite trabajar con urls relativas fijando un punto de partida.

Cuando trabajamos con algún mod_rewrite o con un sistema de directorios físicos para ordenar nuestra información o crear urls canónicas, base es de gran utilidad para no tener que llamar a los enlaces, recursos e imágenes a través de su url absoluta http://www.dominio.tdl/categoria/subcategoria/documento. De esta forma mejoramos la indexabilidad del sitio (o almenos eso se decía hace unos cinco años) y lo más importante es que ahorraremos bastante peso en el documento.

Osea, que incluir <base /> dentro de la cabecera del documento xhtml (en el <head>) tiene muchos beneficios, para mi es lo ideal, pero cuidado con las #anclas y RSS.

Los problemas de usar url relativas con <base href="url" />

Si nuestro contenido lo redifundimos a través de RSS o usamos #anclas en nuestro sitio web -ya sea para jugar con el DOM o para un simple saltar el contenido- tenemos que tener mucho cuidado para no crear multitud de contenido inexistente http://www.dominio.tdl/#ancla o enlaces rotos www.lectorRSS/recurso.

La solución para arreglar las anclas de la plantilla de nuestro CMS es sustituir estos enlaces por su url relativa (respecto a base), por ejemplo con las anclas en php con un <a href="<?php echo $_SERVER['REQUEST_URI'].'#ancla';?>" title="Ir a ancla"> Ir a ancla</a> solucionaríamos el problema.

En el caso de RSS, en teoría no tendríamos que tener ningún problema porque podremos igualmente definir base, pero es probable que el lector de turno no las interprete bien, así que una buena práctica del contenido generado para RSS es pasar las urls relativas a absolutas.

Adrián el día 19/01/2009 - 13:39

En vez de utilizar la base, porque no simplemente referirse a esta en los mismos enlaces dentro de la página de forma /imagenes/fichero.jpg? De esta forma cuando se utilice una ancla (yo diría que son introducidas más frecuente por el editor richtext que por el php del es decir sin le posibilidad de hacer un url request) no habría problema de rutas. Y si luego hay que portar la página a otro dominio es menos coñazo también… este método es posible con el mod_rewrite?

Hugo el día 05/01/2012 - 18:27

Muchas gracias... he estado buscando y eres uno de los pocos que ofrecen una solución a ese problema :)

Escribe un comentario

* = campos obligatorios

:

:

:


Mil novecientos más 84 =