Question

Si j'ai une demande d'une ressource dans mon ASP.NET MVC1 (ou 2) application web pour une ressource statique, disons ... une image ou un fichier javascript ou un fichier css ... Le cadre .NET essayer de voir si la demande correspond à la liste des itinéraires ... et finalement ne peut pas trouver un contrôleur pour cela?

par exemple.

Ressource: /Content/Images/Foo.png

Est-ce aller à la demande dans ma liste d'itinéraires .. ne correspond à aucun des contrôleurs / actions à cette demande et puis essayer ce chemin directement?

Était-ce utile?

La solution

Vous pouvez choisir de mapper un fichier existant ou non le réglage de la RouteCollection.RouteExistingFiles propriété

  

Obtient ou définit une valeur qui indique   si le routage ASP.NET doit gérer   URL correspondant à un fichier existant.

Voici ce que je lis de :

  

Cependant, le système de routage ne fonctionne toujours vérifier le système de fichiers pour voir si un       URL entrante arrive à correspondre à un fichier ou d'un disque, et si oui, le routage ne tient pas compte de la demande (contournement       toutes les entrées de l'itinéraire que l'URL peut aussi correspondre) afin que le fichier sera servi.       Ceci est très pratique pour les fichiers statiques, tels que des images, CSS, JavaScript et fichiers. Vous pouvez       les garder dans votre projet (par exemple, dans votre / ou contenu / dossiers de script), puis référence et       les servir directement, comme si vous n'utilisez pas le routage du tout. Étant donné que le fichier existe réellement       sur le disque, qui prend la priorité sur la configuration de routage.

     

Si, au contraire, vous voulez que votre configuration de routage pour prendre la priorité sur les fichiers sur le disque, vous pouvez définir       la propriété RouteExistingFiles de RouteCollection true. (Il est faux par défaut.)

Autres conseils

Par défaut, le moteur de routage ignorera la route des cartes pour tous les fichiers qui existent physiquement sur le serveur. En bref, vous avez besoin de ne rien faire pour une application MVC lien vers des fichiers statiques.

Vous pouvez aussi faire un petit truc dans IIS. Je stocke mes js, images, etc css dans le dossier de contenu sous le répertoire virtuel.

Si vous affichez les propriétés puis (dans le gestionnaire IIS) du dossier de contenu, créez un répertoire virtuel, puis supprimer le mappage Wildcard. Réglez ensuite le dos contenu du dossier dans un répertoire normal. Cela devrait alors cesser de demandes à ces fichiers traités par le gestionnaire aspnet_isapi.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top