Косая черта (/) против косой черты (~/) в пути к таблице стилей в 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">
(это тоже работает)