web-dev-qa-db-fra.com

slash (/) vs tilde slash (~ /) dans le chemin de la feuille de style dans asp.net

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

44
Kyasa Madhavi
  • / - Racine du site
  • ~/ - Répertoire racine de l'application

La 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/).

80
Oded

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.

9
CRice

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)

6
Gaurav Agrawal