Przyjazne linki w postaci
http://localhost/html/ci/index.php/test/ mają jedną wadę. Element
index.php/test/ traktowany jest jak katalogi! Tak więc jeżeli w widoku umieścimy:
<link rel="stylesheet" type="text/css" href="ścieżka/do/style.css" />
To będzie to ścieżka poprawna dla głównej strony (http://localhost/html/ci/) dla np.
index.php/test/ będzie to "ścieżka" w postaci:
index.php/test/ścieżka/do/style.css i nie będzie oczywiście poprawna.
Jak generować poprawne ścieżki i linki między stronami by zawsze działały ?
Ci oferuje proste rozwiązanie -
Helper o nazwie
url. Najlepszym rozwiązaniem będzie jego automatyczne ładowanie. W
application/config/autoload.php znajdź
$autoload['helper'] i dodaj "pomocnika:
$autoload['helper'] = array('url');
Po jego załadowaniu mamy dostęp do funkcji, m.in.:
-
site_url(): generuje link do strony głównej
-
site_url('kontroler/..'): generuje link do podanego elementu strony (parametrem jest łańcuch - url zaczynający się od kontrolera)
-
base_url(): generuje bazowy url HTTP do głównego katalogu CI
W widoku wystarczy zastosować:
<link rel="stylesheet" type="text/css" href="<?PHP echo base_url(); ?>system/application/views/metrohacker/style.css" />
I ścieżka zawsze będzie poprawna
Przykładowy link do określonej strony:
<a href="<?PHP echo site_url('admin/art_add'); ?>">Dodaj Artykuł</a>