Подтвердить что ты не робот

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

4b9b3361

Ответ 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"> 

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