2009-11-24 8 views
1

Pourquoi ce travail en mode de conception, mais pas quand je le lance:question de chemin d'URL relative

<tr style="background-image: url('~/images/button.gif');"> 

... et cela fonctionne dans la conception et exécuter le mode de temps?

<tr style="background-image: url('images/button.gif');"> 

Le dossier images est un dossier sous la page aspx qui contient ce code HTML.

Répondre

7

Lors de l'exécution, la valeur de style est transmise au navigateur avec le tilde, et le client n'en sait rien. Vous devriez faire quelque chose comme ceci:

<tr style="background-image: url(<%= ResolveUrl ('~/images/button.gif') %>"> 
1

Le chemin relatif n'est connu que sur le serveur. Le mettre dans la source (soit HTML, soit, dans ce cas, CSS), indique au navigateur du client de faire une requête séparée pour ce fichier à l'URL spécifiée. Le '~' ne signifie rien pour l'ordinateur du client, donc la requête ne sera pas faite à l'adresse correcte.