Различаются между./, ../, ../../, ~/ по пути к файлу (URL) в asp.net

У меня есть файл сценария.

<script src="~/Scripts/angular.js"></script>

Смотрите путь ~/Script, Но если я поступил ../../ вместо ~/Также процесс работает так же.

URL моего сайта вроде: https://sample.com/Scripts/angular.js

Если бы я вошел ../../ прежде, чем Scripts, то это автоматически изменит предыдущий URL(https://sample.com/Scripts/angular.js),

Что такое процесс URL? И как его можно автоматически изменить? и расскажите пожалуйста о другом ./, ../ , ../../ , ~/ ,/Scripts ,Scripts?

2 ответа

Решение

Эти компоненты пути являются ярлыками с конкретными значениями:

  • . означает текущий уровень пути (так что если вы на index.aspx а ты ссылку ./style.css тогда последний должен быть в той же папке, что и первый)
  • .. означает один путь на уровень выше (так что если вы на /somefolder/index.aspx а ты ссылку ../style.css тогда последний должен быть в родительской папке someFolder)
  • / означает корневой уровень (так /style.css такой же как http://www.mysite.com/style.css)
  • ~ в ASP.NET означает корень приложения на стороне сервера (так ~/index.aspx будет переведен на URL-адрес index.aspx файл, который находится в корне приложения)

Здесь нужно отметить несколько вещей:

  • Существует разница между путями сервера и путями клиента. Например, с точки зрения веб-браузера отсутствует "корень приложения". Веб-браузер не знает, что делать с ~, Это можно использовать только в путях, которые предварительно обработаны в серверных компонентах. Компоненты на стороне сервера будут знать, как преобразовать его в видимый клиенту путь на основе текущего местоположения приложения относительно веб-сервера.
  • Спецификаторы родительского пути (..) нет предела. Родитель корня считается корнем. Так что если вы на http://www.mysite.com/someFolder/index.aspx а ты ссылку ../../../../style.css это пойдет в http://www.mysite.com/style.css,
  • Браузер также переводит пути для вас. Это одно из различий между "источником страницы" и "DOM". Ваш источник страницы может иметь ссылку на ../somePage.aspx, но когда вы наводите курсор мыши, браузер показывает, что http://www.mysite.com/somePage.aspx, Это связано с тем, что браузер преобразовал относительный путь первого в абсолютный путь второго.

Посмотрим...

 .    = this directory
 ..   = the parent directory
 ../  = the parent directory
 ~/   = the user's home directory or the application's, in ASP
 /    = the root directory

 ../../ = the parent's parent directory 

и так далее.

Кстати, это работает для всех систем Linux/Unix.

Другие вопросы по тегам