2012-07-12 7 views
5

tak zasadniczo, gdy echo funkcji codeigniter base_url() w atrybucie href znacznika zakotwiczenia, wydaje się, że echo dwa razy. Przykład:codeigniter: dlaczego to jest, gdy echo base_url() w atrybucie href znacznika zakotwiczenia, to echo dwukrotnie

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

i wyżej, jeśli go skontrolować przeglądarce Chrome pokazuje to:

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

„mysitedomainname.com” to tylko nazwa i składa się na tym przykładzie. Jakiś powód, dlaczego tak się dzieje?

+0

Jak definiujesz swoje ustawienie base_url w pliku konfiguracyjnym? – Austin

+0

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

+1

@dave Proszę zobaczyć moją odpowiedź poniżej. –

Odpowiedz

5

Są trzy powody, dla których jestem tego świadomy.

Pierwsza z nich, gdy coś jest nie tak napisane w config.php na linii 17 $config['base_url'] = ''; - lepiej pozostawić pustą, tak jak podczas pobierania CI.

Po drugie, jeśli ustawiono wartość $config['base_url'] na coś bez poprzedzania go http:// lub innym protokołem.

Trzeci jest, jeśli ustawiono basehref gdzieś:

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

Kiedy trzeba odwołuje się do innej stronie powinien użycie site_url(), base_url() mogą być stosowane do łączenia stylów, js, img atrybuty src i inne adresy URL: prawdziwe. Powód jest dość prosty, base_url() nie obejmuje wartości index_page ustawionej w config.php.

+0

Wow Drugi problem był ... człowiek spędziłem wiele godzin, dosłownie zabijając się próbując to zrozumieć ... dlaczego w piekle http: // robi różnicę? – dave

+0

Ponieważ jest to podstawowa funkcjonalność HTML, spróbuj zapisać w zwykłym kodzie HTML '1' - spowoduje to dodanie aktualnego adresu URL. I lepiej nie ustawiać tej wartości na nic, CodeIgniter poradzi sobie z tym i nie będziesz musiał tego zmieniać podczas wdrażania projektu. –

+0

ma sens ... jeszcze raz dzięki. – dave

0

będzie działać dobrze, jeśli używasz

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

spróbować

uczynić ten

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

w tym

$config['base_url'] = "" 

w config.php