Paquete de estilo MVC4 dando 403

99

Cuando se habilita la agrupación / minificación, algunos de mis paquetes parecen tener una URL no válida en el navegador (que termina con /), e IIS da un error prohibido 403, como si intentara enumerar el contenido de una carpeta.

No hay diferencia en la forma en que se configuran mis paquetes: no son .min.css, los permisos de acceso son correctos, etc.

Kieren Johnstone
fuente
3
posible duplicado de los paquetes CSS
slolife
El posible duplicado de los paquetes CSS
Michael Freidgeim

Respuestas:

233

Mis paquetes se registraron como rutas que correspondían a una carpeta real en la solución, por ejemplo ~/Content/forum.

Esto funciona bien cuando la agrupación está desactivada (¡la agrupación está incluida correctamente!), Pero no cuando la agrupación está habilitada.

La solución es cambiar el nombre registrado del paquete para que no sea el mismo que existe en el sistema de archivos.

Kieren Johnstone
fuente
20
Tenga en cuenta también que si los archivos CSS se refieren a imágenes u otros archivos relacionados con CSS, asegúrese de que el nombre del archivo del paquete sea algo debajo de la carpeta que contiene el CSS real. Por ejemplo, ~/Content/myfolder/bundlesi CSS es inferior aContent/myfolder
Kieren Johnstone
1
Tenía dos paquetes: ~ / Content / kendo (para css) y ~ / bundles / kendo (para scripts). Entonces: error 403. Cuando cambié el nombre de uno de ellos, el problema desapareció. Gracias.
VikciaR
1
@KierenJohnstone lo siento por no ser específico, "Change the registered name of the bundle"¿qué quieres decir con eso? - Supuse que el nombre del paquete de WE asignación. Me gusta (la parte en negrita) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle
1
Correcto. Esto parece ser un error en el paquete nuget FontAwesome.
wolfyuk
1
También en el paquete select2 nuget.
Tetsujin no Oni
3

En mi caso, el paquete se especificó como un directorio, @Scripts.Render("~/scripts")por lo que IIS no sabía cómo servir el archivo js real, cambié el nombre del paquete para representar un archivo javascript @Scripts.Render("~/scripts.js")y eso lo solucionó. Lo mismo ocurrió con mi paquete de estilo.

mohas
fuente
3

El problema es la convención de nomenclatura que debe tener el nombre de su paquete

("bundles/css") 

Esto resolvió mi problema.

Usman
fuente