Przechowuję arkusze stylów w {root} / styles, a obrazy w {root} / images na stronie internetowej. Jak podać ścieżkę w arkuszach stylów, aby przejść do katalogu obrazów dla określonych obrazów?
np. w background-image: url('/images/bg.png');
html
css
relative-path
aateeque
źródło
źródło
Oto wszystko, co musisz wiedzieć o względnych ścieżkach plików:
Zaczynając od
/
powrotu do katalogu głównego i tam zaczynaRozpoczynanie od
../
powoduje przejście o jeden katalog wstecz i rozpoczęcie w tym miejscuRozpoczynając od
../../
przenosi dwa katalogi wstecz i zaczyna tam (i tak dalej ...)Aby przejść dalej , po prostu zacznij od pierwszego podkatalogu i idź dalej.
Kliknij tutaj, aby uzyskać więcej informacji!
źródło
Zastosowanie
../
:Możesz tego używać tak często, jak chcesz, np.
../../images/
Lub nawet na różnych pozycjach, np.../images/../images/../images/
(Tak samo jak../images/
oczywiście)źródło
W przeglądarce Chrome, gdy ładujesz witrynę z jakiegoś serwera HTTP, działają zarówno ścieżki bezwzględne (np.
/images/sth.png
), Jak i ścieżki względne do jakiegoś katalogu wyższego poziomu (np.../images/sth.png
).Ale!
Kiedy ładujesz (w Chrome!) Dokument HTML z lokalnego systemu plików, nie możesz uzyskać dostępu do katalogów powyżej bieżącego katalogu. Oznacza to, że nie możesz uzyskać dostępu
../something/something.sth
i zmiana ścieżki względnej na bezwzględną lub nic innego nie pomoże.źródło
../
działają dobrze - lub przynajmniej działają dobrze w tym konkretnym przypadku!Przypuśćmy, że masz następującą strukturę plików:
W CSS możesz uzyskać dostęp
image1
, na przykład, używając linii../images/image1.png
.UWAGA : Jeśli używasz przeglądarki Chrome, może ona nie działać i pojawi się komunikat o błędzie informujący, że nie można znaleźć pliku. Miałem ten sam problem, więc właśnie usunąłem całą historię pamięci podręcznej z chrome i zadziałało.
źródło
Jeśli przechowujesz arkusze stylów / obrazy w folderze, aby wiele witryn mogło ich używać, lub chcesz ponownie użyć tych samych plików w innej witrynie na tym samym serwerze, stwierdziłem, że moja przeglądarka / Apache nie pozwala mi przejść do dowolny folder nadrzędny powyżej głównego adresu URL witryny. Wydaje się to oczywiste ze względów bezpieczeństwa - nie powinno być możliwości przeglądania serwera w żadnym innym miejscu niż określone foldery internetowe.
Na przykład. nie działa: www.mywebsite.com/../images
Aby obejść ten problem, używam linków symbolicznych:
Przejdź do katalogu www.mywebsite.com Uruchom polecenie ln -s ../images images
Teraz www.mywebsite.com/images będzie wskazywać www.mywebsite.com/../images
źródło