Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak tworzyć linki, żeby kod był w pełni prznośny?, Ścieżki względne, bezwzględne itd.
Przemek1
post
Post #1





Grupa: Zarejestrowani
Postów: 16
Pomógł: 0
Dołączył: 7.11.2005

Ostrzeżenie: (0%)
-----


Mam prośbę o porady na temat sposobu tworzenia linków w strukturze witryny generowanej w php, tak aby wszystko działało niezależnie od lokalizacji plików na serwerze.
Obecnie tworzę szkielet serwisu i mam wszystkie pliki umieszczone na swoim komputerze w katalogu, który jest ustawiony jako DocumentRoot dla Apache. U mnie jest to "D:/www". Niby wszystko działa ale:
* docelowo serwis trafi na serwer providera i domyślam się, że znajdzie się wewnątrz jakiegoś przydzielonego mi katalogu w DocumentRoot, tak więc odniesienia bezwzględne staną się chyba nieaktualne, bo nie będą uwzględniały tego, że doszła jeszcze nazwa katalogu
* nie wiem, czy w ogóle linki ze ścieżką bezwzględną do pliku na serwerze mają jakiś sens (mam na myśli linki nawigacyjne w strukturze witryny), ale w takim razie jak się pozbyć z URL całego członu ścieżki wskazującego na położenie mojej witryny na serwerze?
* próbowałem stosować ścieżki względne, ale dzieje się coś dziwnego, to znaczy każde kolejne kliknięcie na przykład na link do "index.php" powoduje "dolepienie" do adresu kolejnego członu. Po kilku kliknięciach adres w przeglądarce wygląda mniej-więcej tak:
Kod
http://localhost/index.php/index.php/index.php/index.php/index.php

A sam link, wygląda tak:
Kod
<a href:"index.php">index</a>

Rozumiem, że jest to link "względny", który powoduje poszukiwanie pliku w bieżącym katalogu. Gdy zamieniam go na link bezwzględny:
Kod
<a href:"/index.php">index</a>

wszystko działa jak należy. Ale co się stanie, gdy wszystkie pliki znajdą się w jakimś katalogu na serwerze? Wówczas będę musiał poprawiać wszystkie ścieżki bezwzględne.

Zauważyłem, że linki na stronach nie zawiarają, żadnych członów, które określałyby lokalizację na serwerze u providera. A przecież na pewno nie wszysto jest umieszczane w jednym katalogu DocumentRoot. Na czym więc polega sztuka tworzenia dobrych linków, tak aby niezależnie od lokalizacji zawsze wszystko działało i nie powstawały zlepki jaki tworzą się u mnie przy zastaosowaniu ścieżki względnej jak w pierwszym przykładzie?
Będę wdzięczny za wszelkie wskazówki. Temat jest podstawowy i pewnie był już wałkowany ale nie mogę nic znaleźć.
Przemek
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
dtb
post
Post #2





Grupa: Zarejestrowani
Postów: 476
Pomógł: 1
Dołączył: 5.11.2005
Skąd: Bieruń city

Ostrzeżenie: (0%)
-----


przykładowa struktura plików i katalogów:
d:/www/plik1.html
d:/www/k1/index.html
d:/www/k1/k2/plik2.html
d:/www/k1/k2/plik3.html

zawartość pliku d:/www/k1/index.html (localhost/k1/index.html):
<a href="./../plik1.html">d:/www/plik1.html</a> <- plik katalog wyżej (./../) - ilość ../ określa ile katalogów wyżej
<a href="./index.html">d:/www/k1/index.html</a> <- plik w tym samym katalogu (./)
<a href="./k2/plik2.html">d:/www/k1/k2/plik2.html</a> <- plik w katalogu niżej (./NAZWA_KATALOGU)
<a href="./k2/plik3.html">d:/www/k1/k2/plik3.html</a> <- to samo co wyżej

myslę że to wszystko tłumaczy

Ten post edytował dtb 15.11.2005, 10:36:40
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 06:12