J'exécute une application sur le port d'application écrite en MVC4.
Un ensemble de fichiers css ne fonctionne pas. Sur mon ordinateur local en mode débogage, je vois le code de l'application et je vois les fichiers. L'application fonctionne comme prévu.
<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>
Lorsque je télécharge l'application sur Appharbor, je vois le bundle dans le code mais l'application ne fonctionne pas.
<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>
Lorsque je navigue sur ce lien dans le href
I get 403 - Forbidden: L'accès est refusé.
Comment résoudre ce problème?
asp.net-mvc
asp.net-mvc-4
appharbor
asp.net-optimization
Ricardo Polo Jaramillo
la source
la source
Réponses:
Je suppose que le chemin
Content/css
existe sur le disque dans votre application. Dans ce cas, IIS traiterait la demande, pas MVC.Assurez-vous que le chemin d'accès virtuel du bundle (le paramètre du constructeur StyleBundle) ne correspond pas à un dossier dans le système de fichiers.
D'après les commentaires:
la source
Ce problème est que, par défaut, .NET ne «traite» pas les demandes qui ont une extension .js ou .css.
Il existe deux correctifs pour cela (vous n'avez besoin d'en faire qu'UNE)
A) Supprimez les extensions des noms de bundle. (recommandé) Cela obligera .NET à traiter la demande et à l'exécuter via BundleModule.
B) Ajoutez ceci à votre web.config dans la section system.webServer , ce qui amènera .NET à exécuter les requêtes .js et .css via BundleModule.
Grand bravo à Ray Moro qui a découvert la cause réelle et l'a partagée avec moi sur mon blog: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
la source
Cela m'est également arrivé lorsque j'ai essayé de déployer mon application ASP.NET MVC sur AppHarbor.
J'avais un paquet de feuilles de style avec le nom
et la structure des dossiers était
En changeant simplement le nom du bundle en
"~/Content/bootstrap-css"
mon problème, il a été résolu.la source
Je sais que j'ai 4 ans de retard sur cette question, mais cela a fonctionné pour moi.
la source
Erreur 403 résolue. Voici une explication détaillée et une solution pour l'erreur 403.
La solution est démontrée pour le bundle CSS. Cependant, cela s'applique également à JavaScript.
http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved
En un mot, assurez-vous que le chemin virtuel
[Script | Style]Bundle("~/content/[script | css]")
ne correspond pas à un dossier dans le système de fichiers (par exempleC:\approot\Content\[script | css]
) à la place[Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")
la source
J'ai résolu le problème en ajoutant la ligne de code ci-dessous dans la classe BundleConfig
la source
Ce que je fais est très simple,
J'ajoute "js" à la fin de ScriptBundle comme ceci: new ScriptBundle ("~ / bundles / appjs") Et j'ajoute "css" à la fin de StyleBundle comme ceci: new StyleBundle ("~ / content / appcss")
Les noms de mes dossiers ne se terminent jamais par «js» ou «css».
Ça devrait le faire.
la source
Cela s'applique également à la 'classe ScriptBundle', assurez-vous que le 'nom de paramètre' du constructeur ne correspond pas à un chemin dans le système de fichiers de l'application Web. N'oubliez pas qu'IIS essaiera de servir le fichier / la demande.
la source
Le problème peut également provenir du fichier crypté. Cela m'est venu à l'esprit lorsque j'ai téléchargé BootStrap et utilisé les fichiers fournis. Ils étaient verts dans l'explorateur Windows et fonctionnaient bien dans Visual Studio, mais une fois déployés, j'ai eu une erreur 403.
Vous pouvez voir s'ils sont chiffrés en accédant aux propriétés, puis aux propriétés avancées et il y a une case à cocher chiffrée.
Décochez et ce ne sera plus un problème.
la source
J'ai le même problème avec cette erreur (403 Forbidden). Dans mon cas, la raison est que le serveur proxy de mon organisation bloque mon fichier css. Le nom du fichier CSS correspond à l'une des règles de blocage.
la source
J'ai découvert que le fichier bootstrap.css ne se trouvait pas dans le dossier de contenu, alors je l'ai cherché dans les packages et je l'ai collé là-bas .. cela a fonctionné!
la source