Foros del Web » Programando para Internet » PHP »

problema al hacer un include y distintas carpetas

Estas en el tema de problema al hacer un include y distintas carpetas en el foro de PHP en Foros del Web. Hola a tod@s, no supe bien que nombre ponerle, pero la cuestión es la siguiente: Tengo un proyecto en el que por primera vez tengo ...
  #1 (permalink)  
Antiguo 13/11/2011, 20:10
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 15 años
Puntos: 2
problema al hacer un include y distintas carpetas

Hola a tod@s, no supe bien que nombre ponerle, pero la cuestión es la siguiente:

Tengo un proyecto en el que por primera vez tengo todo ordenado por carpetas y modularizado según la maqueta de la web. La estructura de directorios es:

/css/estilos.css
/productos/jarra.php
/imagenes/fotos/jarra1.jpg
/imagenes/iconos/facebook.jpg
index.php
header.php
footer.php

Y algunos archivos más, pero con estos alcanza para darles una idea y contarles mi problema.

La idea es que en mi archivo index.php, hago un include con php, de los archivos header.php y footer.php. El archivo header.php es el que llama a la hoja de estilos, y lo hace de la forma típica:
<link rel="stylesheet" media="screen" type="text/css" href="css/estilos.css" >

Esto anda perfecto!


Ahora bien, cuando voy a mi archivo jarra.php, cómo lo único que cambia respecto al index.php es lo que tiene en el contenido, también hago include de header.php y footer.php, pero no me toma los estilos!!
El problema creo que pasa en que ahora, cuando el header.php llama a la hoja de estilos, deberia hacerlo : <link rel="stylesheet" media="screen" type="text/css" href="../css/estilos.css" >, es decir agregarle un ../, para que salga de la carpeta productos y luego entre a css.
Problemas similares me ocurren con las imáges como se podrán imaginar. Que obviamente no puedo solucionar, agregándole ese ../ , ya que solucionaría los problemas para jarra.php, pero los tendría con index.php.

Ahora la pregunta es, se les ocurre una solución para esto, que no implique poner todos los archivos en una misma carpeta? Es decir, que no quiero dejar de tener todo ordenado por carpetas, pero tampoco tener que hacer un archivo header.php para cada una de esas carpetas. Hay algo que lo solucione? Tal vez incluir los archivos con otra función que no sea un include? pero no sabría cual.
Bueno, muchas gracias desde ya!
  #2 (permalink)  
Antiguo 14/11/2011, 10:26
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Respuesta: problema al hacer un include y distintas carpetas

Usa / al incio para incluir los archivos desde la raiz del sitio, por ejemplo:
Código HTML:
Ver original
  1. <link rel="stylesheet" media="screen" type="text/css" href="/css/estilos.css" >

Al anteponer la /, el browser va a buscar a partir de tu DOCUMENT_ROOT, es decir la raiz del sitio para hacer todos los includes.

Otra opción es usar la etiqueta <base url=""> de HTML para indicar una base.

Pero ambas cosas son con HTML, no con PHP.

Saludos.
  #3 (permalink)  
Antiguo 14/11/2011, 12:53
 
Fecha de Ingreso: octubre-2009
Mensajes: 107
Antigüedad: 15 años
Puntos: 2
Respuesta: problema al hacer un include y distintas carpetas

GatorV muchas gracias!!!
Me funcionó perfecto usando el tag base!!
Pensé que la solución iba a venir por el lado de php y no por html, por eso lo puse en el foro de php..
Saludos y muchas gracias!!!

Etiquetas: carpetas, distintas, include
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:07.