ASP.NET MVC: fichier CSS de retourner une erreur 302 lorsqu'il existe
J'obtiens une erreur 302 retour sur un seul fichier CSS sur un ASP.NET MVC 2 site en localhost, ce matin, et je ne sais pas ce qui aurait changé à cause de cela.
Le localhost site utilise IIS 7.5, mais j'ai eu une expérience limitée avec IIS, donc je n'ai pas regardé beaucoup de ce qui a pu se passer là.
L'URL vers le fichier CSS est:
http://localhost/MySite/Content/Site.css?v=16
et l'emplacement de l'en-tête de la réponse ressemble à ceci:
/MySite/Account/Login?ReturnUrl=%MySite%2fContent%2fSite.css%3fv%3d16&v=16
Cela me fait penser que MVC est de rediriger le fichier statique ou quelque chose comme ça, mais si c'était le cas, alors je m'attends à toutes mes images, les fichiers CSS et JavaScript pour faire la même chose dont ils ne sont pas. Juste au cas où, voici une version simplifiée de RegisterRoutes()
Mondiale.ascx:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute("", "Account/{action}/", new { controller = "Account" });
routes.MapRoute("", "{action}", new { controller = "Home", action = "Index" });
routes.MapRoute(
"Default", //Route name
"{controller}/{action}/{id}", //URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } //Parameter defaults
);
routes.MapRoute(
"Error",
"{*url}",
new { controller = "Home", action = "ResourceNotFound" }
);
}
Aussi, si je change le nom de mon fichier CSS Site2.css de référence et que, au contraire, la même chose arrive.
Ce qu'il se passe?
Vous devez vous connecter pour publier un commentaire.
La redirection vers la méthode d'ouverture de session qui donne l'impression que c'est à cause des autorisations sur le répertoire ou le fichier plutôt qu'un MVC route de l'attraper. (S'il était surpris par un MVC route, il serait sans doute plutôt d'entraîner une erreur de déterminer qui contrôle et/ou de l'action à utiliser.)
ASP.NET MVC lui-même les feuilles des fichiers statiques seul, mais si ASP.NET en général décide que l'utilisateur anonyme n'a pas accès au fichier CSS ou de son répertoire, ASP.NET vous redirigera vers la connecter sur l'URL, qui sera une ASP.NET MVC action.
Ressemble les règles d'autorisation dans le web.config sont en train de dire que vous devez être authentifié pour voir les pages css. Vous devriez être en mesure de prouver qu'en vous connectant et de voir si vous pouvez obtenir le fichier css pour être servi correctement.
Je voudrais ajouter une section de l'emplacement sur le web.config pour supprimer l'exigence d'un agrément sur le répertoire de contenu. Prises de http://support.microsoft.com/kb/316871