Отличается между префиксом ссылки "~ /" и "/" - PullRequest
0 голосов
/ 23 мая 2011

Иногда нам нужно поставить / или ~ / в качестве суффикса, чтобы сделать ссылку на корень

<script type="text/javascript" src="/scripts/jquery-1.5.1.min.js"></script>
<link href="~/Styles/MasterPage.css" rel="stylesheet" type="text/css" />

Это то, что я знаю от Фила

~ / недопустимо, если у вас нет атрибута runat в вашем элементе управления / элементе. «/» само по себе указывает браузеру искать из корневого каталога, поэтому, если вы ссылаетесь на «/css/main.css» с www.mysite.com/product/view.aspx, он будет искать файл css в www .mysite.com / CSS / main.css. Когда вы используете «~ /» с runat-сервером, он будет определять путь к каталогу во время выполнения, поэтому в том же примере с «~ / css / main.css» отображаемый URL будет выглядеть как «../css». /main.css ', потому что он должен отбросить каталог обратно 1, прежде чем найти каталог' css '. (надеюсь, что это имеет смысл) - Фил Как включить jquery в заголовок главной страницы без проблем с путями?

но, как я уже пытался, даже я использую / firefox по-прежнему ссылаюсь на ../../ вместо статического пути. кроме того, я не знаю четко, как правильно его использовать, какой использовать в какой ситуации.

Ответы [ 2 ]

3 голосов
/ 23 мая 2011

/ в начале относительного URL-адреса копируется в корень имени хоста.

Префикс ~/ в относительном URL-адресе может интерпретироваться только процессом ASP.NET, поэтому он работает только для runat=server. Он выводится после вывода для ссылки на корневой URL-адрес приложения ASP.NET . Часто это совпадает с корнем имени хоста, но будет отличаться, если приложение ASP.NET, в котором выполняется код, является виртуальным каталогом в IIS, а не собственным сайтом.

Если вам нужно отбросить только один уровень каталога назад, вы можете использовать "../" в качестве префикса, а не "/" или "~ /".

3 голосов
/ 23 мая 2011

~ / относится к корневому каталогу приложения виртуального каталога, где «/» относится к корням сайта, например, если у вас есть сайт, который находится в http://www.example.com/ и в котором http://www.example.com/foo, где папка «foo» настроена как виртуальнаякаталог приложения в IIS страница в http://www.example.com/foo/foo.aspx будет разрешать ~ / относительно корневого каталога приложения виртуального каталога, равного http://www.example.com/foo, но "/" все равно будет преобразовываться в корневой каталог сайта, которыйhttp://www.example.com/

...