2012-07-12 10 views
5

quindi sostanzialmente quando echo la funzione codeignur base_url() nell'attributo href di un tag di ancoraggio, sembra echo fuori due volte. Esempio:codeigniter: perché quando echo base_url() in un attributo href di un tag di ancoraggio, echeggia due volte

<a href="<?php echo base_url(); ?>">somelink</a> 

e quanto sopra, se si ispezionare il vostro browser Chrome mostra questo:

<a href="www.mysitedomainname.com/www.mysitedomainname.com/">somelink</a> 

"mysitedomainname.com" è solo un nome che ho fatto per questo esempio. Qualche ragione per cui questo sta accadendo?

+0

Come definisci l'impostazione di base_url nel tuo file di configurazione? – Austin

+0

$ config ['base_url'] = 'www.mysitedomainname.com/'; – dave

+1

@dave Si prega di vedere la mia risposta qui sotto. –

risposta

5

Ci sono tre motivi per cui sono a conoscenza di ciò che può causare questo.

Il primo è quando qualcosa di sbagliato è scritto in config.php sulla linea 17 $config['base_url'] = ''; - è meglio lasciarlo vuoto, proprio come quando si scarica CI.

La seconda è se è stata impostata $config['base_url'] valore a qualcosa, senza prefisso con http:// o un altro protocollo.

Il terzo è se è stato impostato basehref da qualche parte:

<base href="http://www.mysitedomainname.com/" /> 

Quando avete bisogno di collegare a qualche altra pagina, è dovrebbe uso site_url(), base_url() può essere utilizzato per collegare i fogli di stile, js, img attributi src e altro reale URL. Il motivo è piuttosto semplice, base_url() non include il valore index_page impostato in config.php.

+0

wow il secondo era il problema ... l'uomo che ho trascorso ore, letteralmente uccidendo me stesso cercando di capirlo ... perché diavolo farebbe http: // fare la differenza? – dave

+0

Poiché si tratta di una funzionalità HTML di base, provare a scrivere in chiaro in HTML '1' - anteporrà l'URL corrente. Ed è meglio non impostare questo valore su qualsiasi cosa, CodeIgniter gestirà questo per te e non dovrai cambiarlo quando distribuisci il tuo progetto. –

+0

ha senso ... di nuovo grazie. – dave

0

E funziona bene se si utilizza

<a href="<?php echo base_url('Controller/Function'); ?>">somelink</a> 
0

provare questo

rendono questo

$config['base_url'] = "http://www.mysitedomainname.com" 

in questo

$config['base_url'] = "" 

nel config.php