Różnica między ścieżkami względnymi i bezwzględnymi w javascript


Istnieją małe wyjaśnienia
O ile wiem, są to ścieżki względne i bezwzględne,
Completely relative: <img src="kitten.png"/> 
Absolute in all respects: <img src="[url=http://www.foo.com/images/kitten.png">]http://www.foo.com/images/kitten.png">[/url]

Jaka jest różnica między ścieżką względną a ścieżką bezwzględną?
Czy podczas korzystania z tych ścieżek występują problemy z wydajnością?
Czy będziemy mieli jakąś ochronę dla witryn?
Czy istnieje sposób na przekształcenie ścieżki bezwzględnej w ścieżkę względną?
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Nazywa się ścieżka z odsyłaczem do katalogu głównego

absolutny

.
Nazywa się ścieżka z linkiem do bieżącego katalogu

krewny

.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jaka jest różnica między ścieżką względną a ścieżką bezwzględną?

Jeden musi być obliczony względem drugiego identyfikatora URI. A drugi nie.

Czy podczas korzystania z tych ścieżek występują problemy z wydajnością?

Nic specjalnego.

Czy otrzymamy jakiekolwiek gwarancje dotyczące witryn?

Nie

Czy istnieje sposób na przekonwertowanie ścieżki bezwzględnej na ścieżkę względną?

W

naprawdę

w uproszczeniu: pracując od lewej do prawej, spróbuj dopasować schemat, nazwę hosta, a następnie segmenty ścieżki do identyfikatora URI, do którego chcesz odnosić się. Zatrzymaj się, gdy masz mecze.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Całkowicie względne:
<img src="kitten.png"/>

jest to naprawdę ścieżka względna.
Absolutny pod każdym względem:
<img src="[url=http://www.foo.com/images/kitten.png"/>]http://www.foo.com/images/kitten.png"/>[/url]

jest to adres URL i można go w pewnym sensie traktować jako ścieżkę bezwzględną,
ale w tym przypadku nie jest reprezentatywny.
Różnica między ścieżkami względnymi i bezwzględnymi polega na tym, że używając ścieżek względnych, odwołujesz się do bieżącego katalogu roboczego, a używając ścieżek bezwzględnych, odwołujesz się do określonego, dobrze znanego katalogu. Ścieżki względne są przydatne podczas tworzenia programu, który musi korzystać z zasobów z określonych folderów, które można otworzyć, używając katalogu roboczego jako punktu wyjścia.
Przykład ścieżek względnych:
  • image.png
    , co odpowiada
    . \ image.png
    (w systemie Windows) lub
    ./image.png
    (gdziekolwiek indziej).
    .
    wyraźnie wskazuje, że wyrażasz ścieżkę względem bieżącego katalogu roboczego, ale to jest implikowane za każdym razem, gdy ścieżka nie zaczyna się w katalogu głównym (oznaczony ukośnikiem), więc nie musisz go używać (z wyjątkiem niektórych kontekstów, w których domyślny katalog to (lub lista katalogów do przeszukania) będzie obowiązywać, chyba że wyraźnie określisz katalog).
  • .. \ images \ image2.jpg
    w ten sposób możesz uzyskać dostęp do zasobów z katalogów o jeden stopień wyżej w drzewie folderów.
    .. \
    oznacza, że ​​jesteś poza bieżący folder, wprowadź katalog zawierający zarówno foldery robocze, jak i foldery
    images
    . Ponownie użyj
    \
    w systemie Windows i
    /
    w dowolnym innym miejscu.

Przykład ścieżek bezwzględnych:
  • D:\documents\something.doc
  • E:\music\good_music.mp3

itp.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:


względna ścieżka dostępu

Względna ścieżka zakłada, że ​​plik znajduje się na bieżącym serwerze. Korzystanie ze ścieżek względnych umożliwia utworzenie witryny w trybie offline i pełne przetestowanie jej przed załadowaniem.
Na przykład:
php/webct/itr/index.php
.

ścieżka bezwzględna

Bezwzględna ścieżka dostępu odnosi się do pliku w Internecie przy użyciu pełnego adresu URL. Bezwzględne ścieżki wskazują przeglądarce dokładnie, dokąd się udać.
Na przykład:
[url=http://www.uvsc.edu/disted/php/webct/itr/index.php]http://www.uvsc.edu/disted/php/webct/itr/index.php[/url]
Absolutne ścieżki są łatwiejsze w użyciu i zrozumieniu. Jednak nie jest to dobra praktyka na Twojej własnej stronie internetowej. Po pierwsze, użycie ścieżek względnych umożliwia zbudowanie witryny w trybie offline i pełne przetestowanie jej przed przesłaniem. Jeśli korzystasz ze ścieżek bezwzględnych, musisz zmienić kod przed załadowaniem, aby działał. Będzie to również miało miejsce, jeśli kiedykolwiek będziesz musiał przenieść swoją witrynę lub zmienić nazwy domen.
Połączyć:

http://openhighschoolcourses.o ... 12503
http://openhighschoolcourses.o ... 12503
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Wyobraź sobie, że masz otwarte okno pod adresem
[url=http://www.foo.com/bar/page.html]http://www.foo.com/bar/page.html[/url]
we wszystkich (HTML, Javascript i CSS):
opened_url = [url=http://www.foo.com/bar/page.html]http://www.foo.com/bar/page.html[/url]
base_path = [url=http://www.foo.com/bar/]http://www.foo.com/bar/[/url]
home_path = [url=http://www.foo.com/]http://www.foo.com/[/url]
/kitten.png = Home_path/kitten.png
kitten.png = Base_path/kitten.png

W HTML i Javascript ścieżka_podstawowa jest oparta na otwartym oknie. Duże projekty javascript czasami wymagają zmiennej
BASEPATH
lub
root
do przechowywania base_path. (lubię to )
W CSS otwarty adres URL to adres URL, pod którym jest przechowywany lub ładowany plik .css, w tym przypadku nie jest to to samo co javascript z aktualnie otwartym oknem.
W celu zwiększenia bezpieczeństwa zaleca się stosowanie
//
zamiast
http://
w ścieżkach bezwzględnych na potrzeby ewentualnych przyszłych migracji do
https://
. We własnym przykładzie użyj tego w ten sposób:
<img src="//www.foo.com/images/kitten.png">
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Jeśli używasz wersji względnej na

http://www.foo.com/abc
http://www.foo.com/abc, Twoja przeglądarka wyszuka obraz na

http://www.foo.com/abc/kitten.png
http://www.foo.com/abc/kitten.png
i otrzyma 404 - nie znaleziono.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Chodzący krewny:
  • Możesz pobrać katalog offline (prawdopodobnie skompresowany plik) i otwieraj linki z html lub xml lokalnie bez konieczności sięgania serwer. To znacznie poprawia wydajność, zwłaszcza jeśli masz do czynienia z wolną siecią.

Absolut się dzieje:
  • Będziesz musiał przełknąć prędkość swojej sieci, ale z punktu widzenia bezpieczeństwa możesz uniemożliwić niektórym użytkownikom przeglądanie określonych plików lub zwiększyć ich liczbę ruch sieciowy, jeśli (i tylko wtedy, gdy ...) jest dla Ciebie dobry.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Myślę, że ten przykład pomoże ci to łatwiej zrozumieć.
Różnice w ścieżkach systemu Windows
Ścieżka bezwzględna systemu Windows
C:\Windows\calc.exe
Windows nie jest ścieżką bezwzględną (ścieżką względną)
calc.exe
W powyższym przykładzie ścieżka bezwzględna zawiera pełną ścieżkę do pliku, a nie tylko plik, jak pokazano w ścieżce nie bezwzględnej. W tym przykładzie, jeśli jesteś w katalogu, który nie zawiera „calc.exe”, pojawi się komunikat o błędzie. Jednak korzystając ze ścieżki bezwzględnej, możesz znajdować się w dowolnym katalogu, a komputer będzie wiedział, gdzie otworzyć plik „calc.exe”.
Różnice ścieżek w Linuksie
Ścieżka bezwzględna systemu Linux
/home/users/c/computerhope/public_html/cgi-bin
Linux nie jest ścieżką bezwzględną (ścieżka względna)
/public_html/cgi-bin
W tym przykładzie ścieżka bezwzględna zawiera pełną ścieżkę do katalogu cgi-bin na tym komputerze.
Jak znaleźć bezwzględną ścieżkę do pliku w systemie Linux
Ponieważ większość użytkowników nie chce widzieć pełnej ścieżki jako zaproszenia, domyślnie zaproszenie odnosi się do ich katalogu domowego, jak pokazano powyżej. Aby znaleźć pełną ścieżkę bezwzględną do bieżącego katalogu, użyj polecenia pwd.
Zaleca się używanie względnych ścieżek plików (jeśli to możliwe).
Używając względnych ścieżek plików, Twoje strony internetowe nie będą połączone z aktualną bazą adresów URL. Wszystkie linki będą działać na Twoim komputerze (localhost), a także w Twojej bieżącej domenie publicznej i przyszłych domenach publicznych.

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się