.htaccess i ścieżki do skryptów

0

Zrobiłem u siebie 'przyjazne linki'. Moja strona znajduje się w katalogu 'strona', czyli: [url="http://moja-strona.pl/strona/"]http://moja-strona.pl/strona/[/url]
I teraz pojawił się problem tego typu, że żaden skrypt, zamieszczony w nagłówku nie wczytywał się. Znalazłem gdzieś w necie, że należy np. do ścieżki .css dorzucić przed wszystkim, nazwę katalogu, gdzie znajduje się cała strona i faktycznie pomogła zmiana z:
/templates/styl.css
na:
/strona/templates/styl.css

Jednak ten sposób jest lekko denerwujący, szczególnie, że musiałem to zmieniać w kilku miejscach, także w skryptach js. Teraz przyszła kolej na edycję menu i znowu - zamiast wpisać ścieżkę 'index' (bo mam zamianę z index.php na samo index) to musiałbym wpisać '/strona/index'. Co jeśli w przyszłości przeniosę stronę do innego katalogu lub do głównego - public_html ? Przecież nie spamiętam gdzie ja to podmieniałem poszczególne fragmenty kodu :/
Czy jest na to jakiś inny sposób? Bardziej uniwersalny?

0

Nie musisz na początku adresu wstawiać znaku '/', wtedy ścieżka do zasobu na stronie jest liczona względem aktualnej, lub możesz skorzystać ze znacznika base.

0
sirkruk napisał(a):

Nie musisz na początku adresu wstawiać znaku '/', wtedy ścieżka do zasobu na stronie jest liczona względem aktualnej, lub możesz skorzystać ze znacznika base.

Jeśli usunięty zostanie jedynie / ze ścieżki, wtedy adres www.mojastrona.pl/strona/o-nas/ nie będzie miała styli (bo będą ładowane style z pliku mojastrona.pl/strona/o-nas/templates/styl.css, który nie istnieje).
Ustawienie base'a jest lepszym pomysłem.

0

uniwersalny sposób - zapisać sobie "początek" ścieżki do zmiennej i do każdego miejsca, gdzie podajesz ścieżkę - dopisywać ten początek. większość systemów z przyjaznymi urlami ma coś takiego.
możesz też automatycznie wykrywać taką ścieżkę (nie zapisywać jej ręcznie) bawiąć się stringami dostępnymi w $_SERVER (skoro zawsze i tak wywołujesz główny index.php to jest to bardzo proste) i także doklejać do każdego linka wewnętrznego

0
mk napisał(a):
sirkruk napisał(a):

Nie musisz na początku adresu wstawiać znaku '/', wtedy ścieżka do zasobu na stronie jest liczona względem aktualnej, lub możesz skorzystać ze znacznika base.

Jeśli usunięty zostanie jedynie / ze ścieżki, wtedy adres www.mojastrona.pl/strona/o-nas/ nie będzie miała styli (bo będą ładowane style z pliku mojastrona.pl/strona/o-nas/templates/styl.css, który nie istnieje).
Ustawienie base'a jest lepszym pomysłem.

No w tym przypadku jeśli się po prostu usunie jedynie początkowy / to tak będzie, ale to napisałem

wtedy ścieżka do zasobu na stronie jest liczona względem aktualnej

chodziło mi o to, że jeśli jednorazowo zmieni ścieżki na względne to w tym przypadku początek adresu nie będzie miał znaczenia.

No i też wygodnie jest stworzyć sobie jakiś katalog tylko do zasobów na stronę, np. static, wrzucić do niego plik .htaccess z linijką RewriteEngine off i bezwględnie do niego się odwoływać - robię tak we wszystkim i zmiana struktury linków na stronie nie ma prawa nic zepsuć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1