2010-05-26 5 views
1

en regardant différents sites, je vois des conventions contradictoires.quelles sont les meilleures pratiques autour des liens et URL dans asp.net-mvc

si vous voulez avoir des liens vers des images, d'autres pages, fichiers js, j'ai vu:

URL.Content("~/scripts/myscript.js"); 
<a href="/scripts/msscripts.js"> 
<img src="../../images/test.jpg" /> 
<img src="../images/test.jpg" /> 
<img src="/images/test.jpg" /> 
<img src="~/images/test.jpg" /> 

ces tous semblent travailler en asp.net mvc mais il semble qu'il y ait tous font un peu différent des choses. Je passe à un nouveau serveur web où ils passent de la redirection IIS à la réécriture isapi et on m'a dit de m'assurer que mes liens étaient bien faits ou que le site ne fonctionne pas. Est-ce que quelqu'un peut clarifier ce qu'est la "bonne" façon?

Répondre

2

Utilisez la première option. De cette façon, vous pouvez déplacer votre application vers n'importe quel sous-répertoire ou niveau supérieur de votre domaine.

La deuxième option est correcte, si vous êtes sûr que l'application ne fonctionnera JAMAIS à partir d'un sous-répertoire (c'est-à-dire qu'elle sera toujours à la racine du serveur). Le troisième et le quatrième sont mauvais, car ils se réfèrent à la structure de votre URL, ce qui n'a aucun sens dans un environnement MVC: ajouter un nouveau bit au chemin (un argument de plus par exemple) ou refactoriser les chemins, et rien ne marchera . Et si je l'ai dans un fichier css?

0

Le meilleur moyen est d'utiliser Url.Content, et assurez-vous que vous avez le ~ dedans.

Url.Content va alors remplacer le ~ par le bon chemin (la racine de votre site web). Utilisez uniquement des chemins d'accès relatifs dans votre fichier css.

Si votre code CSS est situé dans

/css/style.css

et une image de fond dans /images/background.png

puis dans l'utilisation style.css:

Depuis que votre site Web est déplacé dans son ensemble, cela continuera à fonctionner.

+0

Je ne peux évidemment pas utiliser URL.Content – leora

Questions connexes