El rincón de escribir

Enlaces rotos

Publicado el

por


Rutas relativas en PHP, ¿enlaces rotos e imágenes que no se muestran? [Solución]

Contexto

Tengo una web modular para no ir repitiendo partes de HTML que son iguales en todas las páginas (entiéndase por ejemplo: cabecera, menú y pie de página).

En en el directorio raiz de la web (nuestro .com, .es, .net o lo que sea) todos estos módulos incluidos con PHP se ven correctamente con sus imágenes y en su estructura de carpetas.

Problema

Alojo una sección de la web en un subdirectorio para darle cierta independencia, aunque quiero sí o sí que alguno de esos módulos de la web general se repita también en ese subdirectorio. Imaginaos este blog que está alojado en la carpeta /blog de mi dominio.

Incluyo los módulos que quiero siendo consciente de la ruta relativa:

<!--[Pie de página]-->
<?php include('../includes/footer.php');?>

Y, en efecto, localiza esos archivos sin problema PEEEERO no es capaz de cargar sus imágenes ni de enlazar correctamente sus hipervínculos. El obstáculo, obviamente, está en las rutas relativas de dichas imágenes y de los citados enlaces.

Enlaces rotos
Efectivamente, ‘footer.php’ carga, pero no se muestran sus imágenes

Solución

Sencilla: Convertir las rutas relativas, del archivo que se quiera incluir, en “absolutas”, pero no escribiendo la dirección completa del dominio ahí a lo loco, no (que eso el día que queramos mudarnos y cambiar de nombre traería quebraderos de cabeza evitables), sino colocando una simple barra delante de cada una. Toma ya.

Es decir, en mi «footer.php», donde tenía: src=“imgs/mail.png”
Utilizar: src=“/imgs/mail.png”

Nótese -¡por todos los dioses!- la barra / inmediatamente después de abrir comillas.

Y toda esta sabiduría se la debo, una vez más a Stackoverflow.

Comentarios

¿Opiniones, dudas? Cuéntame…

This site uses Akismet to reduce spam. Learn how your comment data is processed.