it-swarm.com.ru

Разница между относительным и абсолютным путями в JavaScript

Есть небольшие уточнения,

Насколько мне известно, это относительные и абсолютные пути,

Completely relative: <img src="kitten.png"/>   
Absolute in all respects: <img src="http://www.foo.com/images/kitten.png">

В чем разница между относительным и абсолютным путями?

Существуют ли проблемы с производительностью при использовании этих путей?

Получим ли мы какой-нибудь безопасный для сайтов?

Есть ли способ преобразования абсолютного пути в относительный

43
Rajasekhar

В чем разница между относительным и абсолютным путями?

Один должен быть рассчитан относительно другого URI. Другой нет.

Есть ли проблемы с производительностью при использовании этих путей?

Ничего существенного.

Мы получим какой-нибудь безопасный для сайтов?

Нет

Есть ли способ преобразования абсолютного пути в относительный

В действительно / упрощенных терминах: работая слева направо, попробуйте сопоставить схему, имя хоста, затем сегменты пути с URI, к которому вы пытаетесь относиться. Остановись, когда у тебя будет матч.

40
Quentin

Путь со ссылкой на корневой каталог называется абсолютный . Путь со ссылкой на текущий каталог называется относительный .

49
shiva

Полностью относительный:

<img src="kitten.png"/>

это действительно относительный путь.

Абсолют во всех отношениях:

<img src="http://www.foo.com/images/kitten.png"/>

это URL-адрес, и его можно каким-то образом рассматривать как абсолютный путь, , но он не является представительным для этого вопроса.

Разница между относительными и абсолютными путями заключается в том, что при использовании относительных путей вы берете в качестве ссылки текущий рабочий каталог, а с абсолютными путями вы ссылаетесь на определенный, хорошо известный каталог. Относительные пути полезны, когда вы создаете некоторую программу, которая должна использовать ресурсы из определенных папок, которые можно открыть, используя рабочий каталог в качестве отправной точки.

Пример относительных путей:

  • image.png, который эквивалентен .\image.png (в Windows) или ./image.png (где-либо еще). . явно указывает, что вы указываете путь Относительно текущего рабочего каталога, , Но это подразумевается всякий раз, когда путь не начинается в корневом каталоге ( обозначается косой чертой), поэтому вам не обязательно использовать его (за исключением определенных случаев, когда каталог по умолчанию (или список каталогов для поиска) будет применяться, если вы не укажете явно какой-то каталог).

  • ..\images\image2.jpg Таким образом, вы можете получить доступ к ресурсам из каталогов на один шаг вверх по дереву папок. ..\ означает, что вы вышли из текущей папки, Войдя в каталог, содержащий рабочие и images папки. Опять же, используйте \ в Windows и / в любом другом месте.

Пример абсолютных путей:

  • D:\documents\something.doc
  • E:\music\good_music.mp3

и так далее. 

27
user1508332

Представьте, что у вас есть окно, открытое для http://www.foo.com/bar/page.html Во всех них (HTML, Javascript и CSS):

opened_url = http://www.foo.com/bar/page.html
base_path = http://www.foo.com/bar/
home_path = http://www.foo.com/
/kitten.png = Home_path/kitten.png
kitten.png = Base_path/kitten.png

В HTML и Javascript base_path основывается на открытом окне. В больших проектах javascript вам нужна переменная BASEPATH или root для периодического хранения base_path. (как это )

В CSS открытый URL-адрес - это адрес, по которому ваш .css хранится или загружается, это не то же самое, что javascript с текущим открытым окном в этом случае.

А для большей безопасности в абсолютных путях рекомендуется использовать // вместо http:// для возможных будущих миграций на https://. В вашем собственном примере используйте это так:

<img src="//www.foo.com/images/kitten.png">
9
Mehdi

Относительные пути

Относительный путь предполагает, что файл находится на текущем сервере. Использование относительных путей позволяет вам создать свой сайт в автономном режиме и полностью протестировать его перед загрузкой.

Например:

php/webct/itr/index.php

,.

Абсолютные Пути

Абсолютный путь относится к файлу в Интернете, используя его полный URL. Абсолютные пути точно указывают браузеру, куда идти. 

Например:

http://www.uvsc.edu/disted/php/webct/itr/index.php

Абсолютные пути легче использовать и понимать. Тем не менее, это не очень хорошая практика на вашем собственном сайте. Во-первых, использование относительных путей позволяет вам создать свой сайт в автономном режиме и полностью протестировать его перед его загрузкой. Если бы вы использовали абсолютные пути, вам пришлось бы изменить свой код перед его загрузкой, чтобы заставить его работать. Это также будет иметь место, если вам когда-либо приходилось перемещать свой сайт или если вы изменили доменные имена. 

Ссылка: http://openhighschoolcourses.org/mod/book/tool/print/index.php?id=12503

8
N J

Я думаю, что этот пример поможет вам понять это более просто.

Различия путей в Windows

Абсолютный путь Windows C:\Windows\calc.exe

Не абсолютный путь Windows (относительный путь) Calc.exe

В приведенном выше примере абсолютный путь содержит полный путь к файлу, а не только файл, как видно по не абсолютному пути. В этом примере, если вы находитесь в каталоге, который не содержит «calc.exe», вы получите сообщение об ошибке. Однако при использовании абсолютного пути вы можете находиться в любом каталоге, и компьютер будет знать, где открыть файл «calc.exe».

Различия путей в Linux

Абсолютный путь в Linux /home/users/c/computerhope/public_html/cgi-bin

Не абсолютный путь в Linux (относительный путь) /Public_html/cgi-bin

В этом примере абсолютный путь содержит полный путь к каталогу cgi-bin на этом компьютере . Как найти абсолютный путь к файлу в Linux Поскольку большинство пользователей не хотят видеть полный путь как их Подсказка, по умолчанию Подсказка относится к их личному каталогу, как показано выше. Чтобы найти полный абсолютный путь к текущему каталогу, используйте команду pwd.

Рекомендуется использовать относительные пути к файлам (если это возможно).

При использовании относительных путей к файлам ваши веб-страницы не будут привязаны к вашему текущему базовому URL. Все ссылки будут работать на вашем собственном компьютере (localhost), а также на вашем текущем публичном домене и ваших будущих публичных доменах. 

0
Aravind Srinivas

Идя Относительно:

  • Вы можете скачать автономный каталог (возможно, заархивированный файл) И открывать ссылки из html или xml локально, не обращаясь к серверу Это значительно увеличивает быстродействие, особенно если вам приходится иметь дело с медленной сетью.

Идя Абсолют:

  • Вам придется проглотить скорость сети, но с точки зрения безопасности вы можете помешать определенным пользователям видеть определенные файлы или увеличить сетевой трафик, если (и только если ...) это хорошо для вас.
0
Carlos J. Jimenez

Если вы используете соответствующую версию на http://www.foo.com/abc ваш браузер будет искать http://www.foo.com/abc/kitten.png для изображения и получит 404 - не найдено.

0
shim_