Percorsi relativi e percorsi assoluti per gestire le risorse grafiche in Codeigniter: arriva Wolf e risolve i problemi!

Scacco e poi Matto!

Percorsi relativi e percorsi assoluti per gestire le risorse grafiche in Codeigniter: arriva Wolf e risolve i problemi!

Ottobre 24, 2020 codeigniter 0

Negli scacchi le mosse a doppia funzionalità che difendono e attaccano sono quelle che decidono la partita, così può succedere ad esempio che spostando una semplice torre dalla casella a8 alla casella a7 si finisca per difendere l’ingresso di una torre avversaria sulla settima traversa e contemporaneamente si minaccia di trasferire la torre sul lato di re per alimentare un pericoloso attacco sulla casa g7. Lavorando sui progetti concreti lo studio del framework Codeigniter trae enorme beneficio perché si arriva subito al punto senza perdite di tempo, prendiamo ad esempio questa situazione reale:

<img src=”../../images/<?php echo $row->img ?>”>

http://localhost/nomecartellaprogetto/index.php/western/:

Improvvisamente le immagini sono scomparse, perché? Incuriositi facciamo tasto destro sopra l’immagine e indighiamo alla voce informazione immagine che ci segnala il percorso:

http://localhost/nomecartellaprogetto/index.php/images/pugno.jpg

Che cosa é accaduto? Sulla URL adesso è comparso il percorso:

http://localhost/nomecartellaprogetto/index.php/western/index/12

ossia quando la pagina riceve i parametri della paginazione si ritrova come aggancio per la risorsa grafica
src=”../../images/<?php echo $row->img  che adesso però se si analizzano i segmenti allungati dopo il click non funzionano più per attingere alle risorse esterne.

tuoprogetto.com/index.php/className/methodName/paramValue.

Sorvolando sul segmento index.php, che funge da segmento zero o front Controller, abbiamo:

il primo tratto o segmento rappresenta il nome del Controller che deve essere invocato
il secondo tratto rappresenta il metodo del precedente Controller che deve essere richiamato
il terzo tratto (ed altri ulteriori segmenti) rappresenta un parametro che verrà passato al metodo richiamato

tuoprogetto.com/index.php/className/methodName/paramValue

dove className è il nome del Controller da invocare, methodName è il nome del metodo del Controller da chiamare e paramValue è il parametro da passare al precedente metodo. Questo comportamento di base è personalizzabile tramite alcuni parametri di configurazione aggiuntivi e con appositi metodi da utilizzare nei Controller. La pagina di default che possiamo visualizzare nella nostra applicazione di esempio, è raggiungibile anche tramite URL: http://localhost/cartellanomeprogetto/index.php/welcome. Come sappiamo la cartella CONFIG presente dentro application/config/config.php contiene i parametri principali dell’applicazione corrente. I parametri di configurazione sono archiviati nella variabile $config che è un array associativo dove le chiavi identificano i parametri. Modifichiamo di solito a inizio progetto il parametro base_url sulla base del path della nostra applicazione:

$config[‘base_url’] = ‘…’;

Chiamando la nostra applicazione con il nome directory “myproject” opereremo per il nostro sviluppo in locale con:

$config[‘base_url’] = ‘http://localhost/myproject’;

ovviamente in fase di produzione questo URL cambierà. A questo punto torniamo al signor WOLF E COME RISOLVE I PROBLEMI. Per gestire le risorse grafiche bisogna usare un PATH ASSOLUTO e non RELATIVO, quindi il difettoso:

<img src=”../../images/<?php echo $row->img ?>”>

ncessita di integrare la funzione base_url() e diventa:

<img src=”<?php echo base_url(); ?>images/<?php echo $row->img ?>”>

in questo modo quello che andremo a vedere anche usando la paginazione sarà:

Grazie a Wolf che risolve i problemi!