Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [Kohana]odnośniki w widokach
Forum PHP.pl > Forum > PHP > Frameworki
Cromwell
Do tej pory pracowałem na Code Igniter.
Jednak ponieważ 'trzeba się rozwijać', postanowiłem się przesiąść na kohanę, niby kontynuację CI.
Ale już na początku napotkałem na problem, którego nie mogę przeskoczyć.

Nie mogę sobie poradzić z dodaniem pliku css oraz grafik w widoku.
W CI była możliwość ustawienia odpowiednio url, aby można było prosto podać ścieżkę do stylów, czy grafik.
Tutaj tego nie widzę.

Próbowałem coś znaleźć w sieci, jednak nic nie widzę. Co mnie zaskoczyło, ilekroć widziałem w różnych tutorialach tworzone widoki, nigdzie nie było widać odnośników do grafik.

Gdzie to się umieszcza?
I można prosić o podstawowy przykład? Zawsze łatwiej zrozumieć jak się coś widzi..
k_@_m_i_l
  1. echo html::stylesheet('css/toolbar.css');
  2. echo html::script('js/jquery.js');


i masz linki do stylów(które znajdują się w katalogu public/css),oraz skryptów(public/js).
Wszystko w dokumentacji jest opisane.
Cromwell
Wszystko fajnie, tylko że nadal nie działa..
W application/config/config.php ustawiłem
Kod
$config['site_domain'] = 'cromwell.pl/kohana/';

Czyli adres gdzie mam framework (miejsce, gdzie są katalogi application, modules i system).
W widoku podałem
Kod
echo html::image(array('class' => 'logo', 'src' => 'images/grafika.png'));

I nic nie wyświetla.

Jeśli chodzi o strukturę, to w application/controllers/ mam kontroler, który wskazuje na widok test.php w katalogu application/views/. I ten plik na pewno widzi. Grafikę mam w application/views/images/.

Próbowałem już wielu rzeczy, szukałem w dokumentacji, ale nic nie mogę znaleźć. Pewnie rozwiązanie jest bajecznie proste, co jeszcze bardziej mnie denerwuje. Może ktoś napisać, jak odpowiednio podać adres do linku?
bełdzio
wrzuć w head:
  1. <base href="<?= url :: base( ) ?>" />

może pomoże smile.gif
Cromwell
Ok, w pewnym sensie się udało. Obrazki się wyświetlają, a style działają.

Tylko:
Aby wyświetlić obrazek, muszę podać do niego długą ścieżkę. Coś w rodzaju
Kod
echo html::image('application/views/images/top.png');

Przez co w źródle strony mam paskudnie wyglądający adres zaczynający się od http://, a kończący na top.png. Chciałbym go skrócić, ale już nie wiem jak.

Druga rzecz: obrazki za nic nie chciały się wyświetlać, dopóki w .htaccess nie skomentowałem poniższej linijki
Kod
# RewriteRule ^(application|modules|system) - [F,L]

Jednak teraz każdy ma dostęp do każdego katalogu frameworka, czego oczywiście wolałbym uniknąć.
k_@_m_i_l
Zrób katalog images w katalogu public i tam trzymaj obrazki. Takie rozwiązanie będzie najlepsze.
skowron-line
Cytat(k_@_m_i_l @ 7.09.2009, 09:47:05 ) *
Zrób katalog images w katalogu public i tam trzymaj obrazki. Takie rozwiązanie będzie najlepsze.

http://normanos.com/2009/01/10/kohanaphp-uwaga-na-htaccess/ tu jest info na ten temat.
Cromwell
Ok, przeniosłem katalog images i css do public, w .htaccess usunąłem komentarz. Obrazki i style działają, a nie ma dostępu do katalogów kohany, między innymi application i application/cache.

Teraz już tylko taka mała dodatkowa rzecz:
W podglądzie źródła strony linki do obrazków wyświetlają się w ten sposób
Kod
http://cromwell.pl/images/logo.png

Zmieniłem wartość z config.php $config['site_domain'], zostawiając to puste ('').

Teraz link do grafik ma postać
Kod
/images/logo.png

I tak na wszelki wypadek zapytam - nie będzie z tym później problemów?
bełdzio
Cytat(skowron-line @ 7.09.2009, 12:31:09 ) *

od dawien dawna w dołączonym .htaccess jest regułka do blokowania dostępu do katalogów aplikacji tak więc jak ktoś jej samemu nie skasuje to nie ma o co się martwić
k_@_m_i_l
Najlepiej będzie jak będziesz stosował taką strukturę katalogów :
Kod
|-application
|-modules
|-public_html
    -index.php ...

Gdzie katalogi application i modules trzymasz poza katalogiem public_html,który jest dostępny z poziomu przeglądarki,tam trzymaj tylko style,js,obrazki i index i tak będzie dobrze.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.