View Full Version : [CSS] utilizzo da altre cartelle
bouncey2k
12-11-2007, 19:00
Supponiamo che il mio sito contenga una cartella chiamata "CSS" con dei fogli di stile. Supponiamo che creo un file.php e lo metto in cartella_principale/2008/11
Come faccio a fare in modo che il file.php utilizzi i css della cartella "CSS"? che percorso gli devo dare?
E se il file abbia istruzioni include del php? (immagino si faccia come per i css).
Grazie.
Supponiamo che il mio sito contenga una cartella chiamata "CSS" con dei fogli di stile. Supponiamo che creo un file.php e lo metto in cartella_principale/2008/11
Come faccio a fare in modo che il file.php utilizzi i css della cartella "CSS"? che percorso gli devo dare?Ok, ricapitoliamo, hai una struttura del tipo:
- Sotto la root del sito hai una cartella CSS che contiene dei file .css
- Sotto la root del sito hai una struttura cartella_principale/2008/11 con un file.php
Il file css lo puoi referenziare con "../../../CSS/file.css" o con "/CSS/file.css". Il primo path è relativo al file.php, il secondo path è assoluto dalla root del sito (preferibile).
E se il file abbia istruzioni include del php? (immagino si faccia come per i css).Cioè? Spiega meglio.
bouncey2k
12-11-2007, 20:52
quindi per evitare i vari ../../../../ è meglio mettere / in tutti anche nei file di root.
Mi spiego meglio. Se in root ho un index.php che include un menu.php sarà meglio dargli un
1) <? include ("/menu.php"); ?> piuttosto che un
2) <? include ("menu.php"); ?> ? <-- punto di domanda
poiché se sposto il file index.php in /pinco/pallino mi include il menu correttamente, mentre nel secondo caso no. Giusto?
PS: mi accorgo di essermi intortato parecchio.
anonimizzato
12-11-2007, 20:59
poiché se sposto il file index.php in /pinco/pallino mi include il menu correttamente, mentre nel secondo caso no. Giusto?
Yes.
bouncey2k
12-11-2007, 22:29
il problema sull'include è semplice. I CSS me li collega, altri file php no!
per esempio in /uno/due/file.php c'è questo pezzo di codice
<div id="colonna-sinistra"><? include ("/menu-sinistra.php"); ?></div>
e il menu non mi compare..
il problema sull'include è semplice. I CSS me li collega, altri file php no!
per esempio in /uno/due/file.php c'è questo pezzo di codice
<div id="colonna-sinistra"><? include ("/menu-sinistra.php"); ?></div>
e il menu non mi compare..Per un motivo ancora più semplice! I CSS vengono prelevati lato client dallo user-agent (browser). Il client non sa nulla di dove sono messi fisicamente i file sul server, l'unica cosa che "sa" è che un path che inizia con '/' è riferito alla "root" del sito.
Negli script PHP invece tecnicamente hai accesso al file-system del server (salvo limitazioni varie, ovviamente). Quindi un path che inizia con '/' è riferito alla "root" del file-system, non del sito
Su un sistema Linux la root del sito potrebbe essere ad esempio "/var/www/tuosito/html". In PHP in genere si usa la variabile DOCUMENT_ROOT, es:
include "${_SERVER['DOCUMENT_ROOT']}/tuo_file_nella_root.php";
Ammesso che il server web imposti correttamente la variabile DOCUMENT_ROOT (mi è capitato purtroppo di vedere hosting anche professionali in cui non è così .....).
bouncey2k
13-11-2007, 12:19
ora capisco. Proverò questo metodo.
ma qual è il metodo migliore e più utilizzato allora?
DOCUMENT_ROOT o ../../../ ?
Vedo spesso siti che fanno uso di sottocartelle, ma non penso che copi-incollino il file da includere nelle cartelle altrimenti se devono fare modifiche generali devono modificare tutti i file, no?!
ora capisco. Proverò questo metodo.
ma qual è il metodo migliore e più utilizzato allora?
DOCUMENT_ROOT o ../../../ ?Io personalmente preferisco sempre usare la variabile DOCUMENT_ROOT (quindi un path assoluto).
bouncey2k
13-11-2007, 15:09
Ho inserito in /uno/due/file.php questo codice
<? include ("${_SERVER['DOCUMENT_ROOT']}/menu-sinistra.php"); ?>
e non funziona. Sbaglio qualcosa?
Ho inserito in /uno/due/file.php questo codice
<? include ("${_SERVER['DOCUMENT_ROOT']}/menu-sinistra.php"); ?>
e non funziona. Sbaglio qualcosa?Sicuro che DOCUMENT_ROOT sia corretto? Il server è "tuo" (il tuo PC) o è un hosting su internet?
Fai una pagina di phpinfo e verifica la variabile.
bouncey2k
13-11-2007, 16:22
è un hosting su internet.
bouncey2k
14-11-2007, 18:57
è un hosting su internet.
up
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.