Различаются между./, ../, ../../, ~/ по пути к файлу (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.