
Mój problem tyczy się php i htmla (głównie smarty)
załóżmy że mamy taką strukturę strony:
* public_html/ - znajduje się w katalogu użytkownika serwera, np /home/user
* public_html/css - arkusze css
* public_html/css/img - obrazki
* public_html/core - jądro aplikacji
* public_html/classes - klasy php
* public_html/templates - szablony smarty
Oczywiście są jeszcze inne katalogi, jednak te wystarczą a by zrozumieć istotę problemu

plik index.php jest w katalogu public_html/, jest w nim include pliku public_html/core/load.php w którym jest ładowanie poszczególnych modułów aplikacji. Aby załadować np plik public_html/classes/x.class.php jest w nim:
<?php include 'classes/x.class.php'; ?>
I teraz moje pytanie: czy można jakąś funkcją zmienić katalog główny na public_html/ aby wpisując w pliku ładującym np:
<?php include '/classes/x.class.php'; ?>
serwer szukał pliku x.class.php w katalogu /home/user/public_html/classes/ ?

Oczywiście wiem że w tym wypadku efekt będzie identyczny, lecz z mojego linuxowego przyzwyczajenia sądzę że o wiele jaśniej jest podawać ścieżki zazynając od /. No i w miarę rozbudowania aplikacji nie trzeba się bawić w ścieżki względne, tylko można wszystkie zawsze podawać względem / czyli np w naszym przypadku /home/user/public_html
Tyczy się to też plikół HTML, np atrybutów src w tagu img .. Dzięki tagowi <base> bez problemu można zmienić owy katalog, ale wtedy ścieżki do obrazków podaje się (nawiązując do przykładu powyżej) bez / na początku, z nim nie działa ( np css/img/obrazek.gif, a nie /css/img/obrazek.gif).. Da się jakoś zmusić serwer do takiej współpracy - teraz najlepsze


---EDIT:
Udało mi się dojść do czegoś w plikach HTML.
W tej chwili projekt mam w katalogu głównym w katalogu/projekt/, w pliku konfuguracynym smarty zainicjowałem:
BaseHref = "http://serwer.pl"
BaseDir = "/projekt"
W sekcji head szablonów dałem: <base href='{#BaseHref#}' />, a przy wszystkich obrazkach daję: <img src='{#BaseDir#}/css/img/obrazek.gif' />, póki co działa .. Ale nie wiem jak całość będzie się zachowywać gdy BaseDir podam pusty .. Co sądzicie o takim rozwiązaniu ? Może ktoś podzieli się doświadczeniami w starciu z tym zagadnieniem ?
