sábado, 24 de mayo de 2025

Un tropiezo en el camino: base_url() y site_url()

Me encontraba creando la segunda aplicación web en CodeIgniter cuando me tropezé con base_url() en el contexto de usarla para llamar una pagina php o html, definido previamente con una ruta. Primero me producía error al cargar las páginas. Luego de verificar que no estaba mal la configuración de las rutas y de escribir manualmente el recurso solicitado en la barra de direcciones, llegué a la conclusión de que no estaba funcionando adecuadamente. Al intentar modificar el contenido de la función para que apuntara a la url correcta en el archivo de configuración correspondiente, observé como toda la aplicación estallaba catastroficamente. Entonces, decidí no tocarla para nada, ni a base_url() y tampoco a site_url() e implementar mi propia constante para tener la ruta correcta y que no reviente toda la aplicación. Así que lo que hice fue agregar las siguientes lineas al archivo app\Config\Constants.php en el que se define una cosntante llamada MI_BASE_URL:

 $miBaseURL = "http://".$_SERVER['HTTP_HOST'];
 $miBaseURL .= str_replace(basename($_SERVER['SCRIPT_NAME']),'', $_SERVER['SCRIPT_NAME']);
 defined('MI_BASE_URL')      || define('MI_BASE_URL',$miBaseURL);

Luego, se puede usar esta constante en donde se necesite llamar a cualquier recurso:

<a href="<?= MI_BASE_URL.'listar' ?> ">Listar Contactos</a>

No hay comentarios.:

Publicar un comentario