Estoy ejecutando una aplicación en el puerto de aplicaciones escrita en MVC4.
Un paquete de archivos CSS no funciona. En mi computadora local en modo de depuración veo el código de la aplicación y veo los archivos. La aplicación funciona como se esperaba.
<link href="/Content/css/home/basic-jquery-slider.css" rel="stylesheet"/>
<link href="/Content/css/home/Home.css" rel="stylesheet"/>
Cuando subo la aplicación a Appharbor, veo el paquete en el código, pero la aplicación no funciona.
<link href="/Content/css/home?v=zhVOIpUNuvCOZhJyBcQWpMlozayor4te6k-pM29wHqI1" rel="stylesheet"/>
Cuando hojeo que enlazan en el href
recibo 403 - Prohibido: Acceso denegado.
¿Cómo solucionar este problema?
asp.net-mvc
asp.net-mvc-4
appharbor
asp.net-optimization
Ricardo Polo Jaramillo
fuente
fuente
Respuestas:
Supongo que la ruta
Content/css
existe en el disco en su aplicación. En este caso, IIS estaría manejando la solicitud, no MVC.Asegúrese de que la ruta virtual para el paquete (el parámetro del constructor StyleBundle) no coincida con una carpeta en el sistema de archivos.
De los comentarios:
fuente
Este problema es por defecto .NET no "procesa" las solicitudes que tienen una extensión .js o .css.
Hay dos soluciones para esto (solo necesita hacer UNA)
A) Elimine las extensiones de los nombres de paquete. (recomendado) Esto hará que .NET procese la solicitud y la ejecute a través del BundleModule.
B) Agregue esto a su web.config en la sección system.webServer , lo que hará que .NET ejecute solicitudes .js y .css a través de BundleModule.
Gran agradecimiento a Ray Moro, quien descubrió la causa real y lo compartió conmigo en mi blog: http://blog.cdeutsch.com/2012/11/fixing-404-errors-for-aspnet-mvc-apps.html
fuente
También sucedió conmigo cuando intenté implementar mi aplicación ASP.NET MVC en AppHarbor.
Tenía un paquete de hojas de estilo con el nombre
y la estructura de carpetas era
Simplemente cambiando el nombre del paquete a
"~/Content/bootstrap-css"
mi problema se volvió a resolver.fuente
Sé que llegué 4 años tarde a esta pregunta, pero esto funcionó para mí.
fuente
Error 403 resuelto. Aquí hay una explicación detallada y una solución para el error 403.
La solución se demuestra para el paquete CSS. Sin embargo, también se aplica a JavaScript.
http://www.mvccentral.net/Story/Details/articles/kahanu/stylebundle-403-error-solved
En pocas palabras, asegúrese de que la ruta virtual
[Script | Style]Bundle("~/content/[script | css]")
no coincida con una carpeta en el sistema de archivos (por ejemploC:\approot\Content\[script | css]
)[Script | Style]Bundle("~/content/[scriptDiff | cssDiff]")
fuente
Resolví el problema agregando la siguiente línea de código en la clase BundleConfig
fuente
Lo que hago es muy simple.
Agrego "js" al final de ScriptBundle así: nuevo ScriptBundle ("~ / bundles / appjs") Y agrego "css" al final de StyleBundle así: nuevo StyleBundle ("~ / content / appcss")
Los nombres de mis carpetas nunca terminan con "js" o "css".
Deberias hacer eso.
fuente
Esto también se aplica a la 'clase ScriptBundle', asegúrese de que el 'nombre del parámetro' para el constructor no coincida con una ruta en el sistema de archivos de la aplicación web. Recuerde que IIS intentará entregar el archivo / solicitud.
fuente
El problema también puede provenir del archivo que se cifra. Esto se me ocurrió cuando descargué BootStrap y usé los archivos suministrados. Se mostraron verdes en el explorador de Windows y funcionaron bien en Visual Studio, pero cuando se implementó, obtuve un error 403.
Puede ver si están encriptados yendo a propiedades, luego a propiedades avanzadas y hay una casilla de verificación encriptada.
Desmarque y ya no será un problema.
fuente
Tengo el mismo problema con ese error (403 prohibido). En mi caso, la razón es que el servidor proxy en mi organización bloquea mi archivo css. El nombre del archivo CSS coincide con una de las reglas de bloque.
fuente
Descubrí que el archivo bootstrap.css no estaba en la carpeta de contenido, así que lo busqué en los paquetes y lo pegué allí ... ¡funcionó!
fuente