2013-08-06 6 views
2

мне интересно, если кто-то может объяснить мне, в деталях, разницу между этим:Разница между ~/и ../

~/Images/delete.png 
../Images/delete.png 

Что - я думаю - я знаю (не уверен, на всех):

  • ../ и ~/понимает на стороне сервера. (C#)
  • ../ понимается на стороне клиента, но ~/нет. (html и javascript)
  • ../ и ~/mean Родительский каталог
  • Когда я использую ~/на стороне сервера, похоже, что он конвертирован в ../ на стороне клиента.

Я пытался найти решение, но - я думаю - Google не считают «~ /» и «../» в строке поиска.

PS: Возможно, кто-то уже задал этот вопрос. Я провел много исследований, но я не нашел ясного ответа. Если вы думаете, что кто-то сделал это, пожалуйста, обратитесь к нему.

спасибо.

EDIT:

Спасибо за ваш ответ.

Таким образом, ~ преобразуется как путь к корню проекта.

Ex: локальный: 8080/главная/изображения/delete.png

~/images/delete.png ---- > ../main/images/delete.png ---- > localhost:8080/main/images/delete.png 

../images/delete.png ---- > main/images/delete.png 

Таким образом, клиентский код для первого URL будет: ../main/images/delete.png

ответ

6

В ASP.NET, ~ является project root operator (не родительской папкой). ASP заменяет его на путь к корню проекта. Он работает только на стороне сервера, потому что оператор ~ является особенным для ASP.NET, но не для браузера.

../ означает родительский каталог и работает в любом месте.

+0

Благодарим за ответ! Это помогло мне понять эту концепцию! :) –

0

~ не имеет особого значения в URL-адресах. Это просто персонаж. Это может иметь особое значение для того, что интерпретирует его на сервере. например ASP.NET сопоставляет его с корнем проекта (при выводе страниц, а не при чтении URL-адресов с сервера), а Apache часто настраивается для отображения ~foo в /home/foo/public_html/ в файловой системе.

../ означает «Перейти на один уровень / s» и разрешен клиентом.

1

~/ разобран на сервере как корневой каталог приложения. Это хороший способ ссылаться на ресурсы, потому что URL-адреса будут корректными везде, где установлено приложение. На сервере разработки корневой каталог может быть http://localhost:8080/myproject/, а при развертывании он может быть http://mydomain.com/.

../ - относительный URL-адрес, указывающий на родителя текущего каталога.

0

'/folder' = относительный путь сайта корня

'folder' = относительный путь, который разрешен против текущего пути страницы

'../folder/...' 

= относительный путь, который разрешен в качестве родителя текущего пути

страницы

'~' - конкретный оператор root asp.net, который разрешает корень текущего приложения. Вы хотите использовать этот оператор вместо '/' в контрольных серверах asp.net, которые ссылаются на ресурсы. Оператор ~ распознается только для серверных элементов управления и кода сервера. Вы не можете использовать оператор ~ для элементов клиента.

читать: http://msdn.microsoft.com/en-us/library/ms178116%28v=vs.100%29.aspx