Ho una variabile sul mio sito chiamato $ basePath che è impostato come:PHP include percorso assoluto
$basePath = '/Systems/dgw/';
Io lo utilizzo su tutti i miei tag CSS, JS e immagini come così (accorciata per una migliore visibilità) :
Non ho alcun problema con quelli inclusi e funzionano bene ovunque e in qualsiasi cartella in cui sono.
ho una certa pagina inclusa che ha la seguente riga:
<img src="<?php echo $basePath; ?>images/new_logo.png" alt="logo"/>
E l'immagine mostra bene. La riga dopo afferma:
<?php include($basePath.'include/assets/common/topMessages.php');?>
Ma l'inclusione non accade. Quando provo in questo modo:
<?php include('../../include/assets/common/topMessages.php');?>
Funziona.
Qualcuno ha idea di cosa potrebbe essere sbagliato?
'echo' non include _include_ qualcosa ... – CBroe
Siamo spiacenti, ha copiato la riga sbagliata. Fisso. – digicom
Fondamentalmente c'è una distinzione tra la tua webroot (ad esempio 'www.esempio.com /' è la radice del tuo sito web) e la radice di un filesystem (unix). Il webroot è mappato su un percorso nel filesystem; spesso 'www.esempio.com /' è mappato su qualcosa come '/ var/www/example.com/http_docs /'. Il tuo server web traduce automaticamente qualsiasi richiesta di '/ a/b/c' in'/var/www/example.com/http_docs/a/b/c'. Tuttavia, quando includi un file tramite PHP, al webserver non viene chiesto di tradurre il percorso, e come tale cerca '/ a/b/c' nel tuo filesystem, che ovviamente non esiste. – Tularis