Mam taką konfigurację:
Mam wtedy funkcję pomocniczą, która po prostu zwraca pełną ścieżkę do tego w zależności od mojej konfiguracji, coś podobnego do:
application / helpers / utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
Zwykle trzymam typowe procedury podobne do tego w tym samym pliku i ładuję go automatycznie z konfiguracją automatycznego ładowania codeignitera.
Uwaga: pomocnik adresu URL automatycznego ładowania w celu base_url()
uzyskania dostępu.
application / config / autoload.php:
$autoload['helper'] = array('url','utility');
Będziesz mieć wtedy dostęp do asset_url()
całego kodu.
$autoload['helper'] = array('url', 'utility');
Nie, wewnątrz folderu widoków nie jest dobrze.
Spójrz: musisz mieć 3 podstawowe foldery w swoim projekcie:
system // To jest framework CI, nie ma zbyt wielu powodów, aby dotykać tych plików
aplikacja // tutaj kieruje się Twoja logika, pliki, które tworzą aplikację ,
public // to musi być twój katalog główny
Ze względów bezpieczeństwa lepiej jest trzymać framework i aplikację poza katalogiem (public_html, htdocs, public, www ... itd.)
W swoim folderze publicznym powinieneś umieścić swoje publiczne informacje, to, co widzą przeglądarki, typowe dla znalezienia folderów: images, js, css; więc twoja struktura będzie:
źródło
public
Czy jest jakiś problem z dodaniem folderu o tej samej nazwie?.htaccess
usuwanie/index.php?
i wywoływanie folderu publicznegobase_url().'public/yourfolder';
Tak postępuję z majątkiem publicznym. Tutaj używam metody Bootstrap Phalcon PHP .
Struktura folderów
Pliki do edycji
.htaccess*
.htaccess**
index.php***
Zmodyfikuj
application
ścieżkę isystem
ścieżkę jako,Teraz używasz
public
folderu jakobase_url()."public/[YOUR ASSET FOLDER]"
Mam nadzieję że to pomoże :)
źródło
/public
więc dlaczegobase_url ()."public/[...
! Powinno być sprawiedliwebase_url ()."/[YOUR ASSET FOLDER]"
.Zwykle umieszczam wszystkie moje pliki w folderze „ asset ” w katalogu głównym aplikacji, a następnie upewniam się, że używam Asset_Helper, aby wskazać te pliki za mnie. To właśnie sugeruje CodeIgniter.
źródło
Nikt nie mówi, że musisz zmodyfikować .htacces i dodać katalog w warunku przepisywania. Utworzyłem katalog „public” w katalogu głównym obok „system”, „aplikacja”, „index.php”. i edytować plik .htaccess w ten sposób:
Teraz musisz po prostu zadzwonić.
<?php echo base_url()."/public/yourdirectory/yuorfile";?>
Możesz dodać podkatalog do katalogu „public”, jak chcesz.źródło
Niezależnie od tego, gdzie umieścisz plik CSS, możesz po prostu użyć helpera CodeIgniter "html" o nazwie link_tag (). Zastosowałbyś tego pomocnika mniej więcej tak:
To do Ciebie należy zlokalizowanie pliku CSS w najbardziej odpowiednim miejscu (Twoim zdaniem). Trzeba by było albo automatycznie załadować helpera "html", albo osobno załadować go, żeby z niego korzystać.
Ludzie ciągle sugerują użycie metody base_url (), aby to osiągnąć, ale tak naprawdę nie jest to sposób, w jaki można to zrobić w "CodeIgniter" (myślę, że to pytanie ma kilka duplikatów). To zadziała, ale jednym z powodów korzystania z frameworka jest użycie gotowych funkcji w nim.
W Codeigniter jest wielu pomocników, którzy mogą robić tego typu rzeczy.
źródło
dodaj do jednego folderu dowolną nazwę np. publiczny i dodaj plik .htaccess i zapisz zezwalaj na wszystko to znaczy, w tym folderze wszystkie twoje pliki i wszystkie foldery nie będą dawać błędu Dostęp zabroniony! użyj tego w ten sposób
źródło
Używam najnowszej wersji CodeIgniter 3.1.0. Jego struktura folderów jest następująca:
Tam należy umieścić obrazy, pliki css i js w folderze zasobów.
źródło
Używam następującej struktury folderów:
źródło
(Jestem nowy w Codeigniter, więc nie wiem, czy to najlepsza rada)
Pliki dostępne publicznie przechowuję w moim folderze publicznym. To logiczne, że tam są i nie chcę używać Codeignitera do czegoś, do czego nie muszę go używać.
Drzewo katalogów wygląda następująco:
Jedyne pliki, które trzymam w / public /, to index.php Codeigniter i mój plik .htaccess:
źródło
możesz umieścić folder css w folderze assest (możesz go nazwać dowolną nazwą) w katalogu swojego projektu jako:
... kiedy chcesz załadować ten plik na stronę, możesz użyć funkcji base_url () w następujący sposób:
<head> <link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'> </head>
i na pewno dodasz base_url swojego projektu w pliku config.php w następujący sposób:źródło
Cześć, nasza konstrukcja jest podobna do aplikacji, systemu, przewodnika użytkownika
utwórz nazwę folderu zasoby tuż obok wszystkich folderów, a następnie w tym folderze zasobów utwórz folder css i javascript oraz obrazy umieść wszystkie pliki css js w folderach
teraz przejdź do header.php i wywołaj css w ten sposób.
źródło
link_tag()
Pomocnik jest wyraźnie sposób to zrobić. Umieść swój css w miejscu, w którym zwykle należy, w site_root / css /, a następnie użyj helpera:Z dokumentacji The CodeIgniter ...
Wynik
źródło