Slash (/) vs tilde slash (~/) в пути листа стилей в 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)
В соответствии с моим знанием ~ представляет корневую директорию приложения
"Common" - это папка под корнем веб-сайта (named testsite.demo) в IIS
физический путь = D:\Physicalpath\WarpFirstSite\testsite.demo
общая папка - D:\Physicalpath\WarpFirstSite\testsite.demo\common
Ответы
Ответ 1
-
/
- корень сайта
-
~/
- Корневой каталог приложения
Разница в том, что если вы на сайте:
http://example.com
И у вас есть приложение myapp
on:
http://example.com/mydir/myapp
/
вернет корень сайта (http://example.com
),
~/
вернет корень приложения (http://example.com/mydir/
).
Ответ 2
Второй не будет работать, потому что его не признанный путь ничем, кроме кода asp.net на стороне сервера. И поскольку ваш тег ссылки является обычным html, а не сервером, он никогда не обрабатывается.
Ответ 3
Если вы добавите runat="server"
в свой тег ссылки, это будет отлично работать.
как это....
<link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server">
(это также работает)