Comment ces 2 chemins sont résolus dans asp.net. pourquoi ces 2 donne un chemin différent. À quelle heure nous devons aller pour ceux-ci.
<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)
Selon ma connaissance ~ représente le répertoire racine de l'application "Common" est le dossier sous la racine du site Web (nommé testsite.demo) dans IIS
chemin physique = D:\Physicalpath\WarpFirstSite\testsite.demo
emplacement du dossier commun - D:\Physicalpath\WarpFirstSite\testsite.demo\common
/
- Racine du site~/
- Répertoire racine de l'applicationLa différence est que si votre site est:
http://example.com
Et vous avez une application myapp
sur:
http://example.com/mydir/myapp
/
renverra la racine du site (http://example.com
),
~/
renverra la racine de l'application (http://example.com/mydir/
).
Le second ne fonctionnera pas car ce n'est pas un chemin reconnu par quoi que ce soit, sauf le code asp.net du côté serveur. Et puisque votre balise de lien est du code HTML normal et non un contrôle serveur, elle n'est jamais traitée.
Si vous ajoutez runat="server"
dans votre balise de lien, cela fonctionnerait parfaitement ....
comme ça....
<link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server">
(cela fonctionne aussi)