Косая черта (/) против косой черты (~/) в пути к таблице стилей в asp.net

Как эти 2 пути разрешены в asp.net. почему эти 2 дают другой путь. В какое время нам нужно пойти на это.

<link href="/common/black_theme/css/style.css"  rel="stylesheet"> (this is working)
<link href="~/common/black_theme/css/style.css"  rel="stylesheet"> (this is not working)

Насколько я знаю, ~ представляет корневой каталог приложения. "Общий" - это папка под корневым каталогом веб-сайта (с именем testsite.demo) в IIS.

физический путь = D:\Physicalpath\WarpFirstSite\testsite.demoобщее местоположение папки - D:\Physicalpath\WarpFirstSite\testsite.demo\common

3 ответа

Решение
  • / - Корень сайта
  • ~/ - корневой каталог приложения

Разница в том, что если ваш сайт:

http://example.com

И у вас есть приложение myapp на:

http://example.com/mydir/myapp

/ вернет рут сайта (http://example.com),

~/ вернет рут приложения (http://example.com/mydir/).

Второй не будет работать, потому что это не распознанный путь ничем, кроме кода asp.net на стороне сервера. А поскольку ваш тег ссылки является обычным HTML, а не серверным элементом управления, он никогда не обрабатывается.

Если вы добавите runat="server" в вашей ссылке тег, то это будет работать отлично....

как это....

<link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server"> 

(это тоже работает)

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