Bundle in stile MVC4 che dà 403


99

Quando il raggruppamento / minimizzazione è abilitato, alcuni dei miei pacchetti sembrano avere un URL non valido nel browser (che termina con /) e IIS restituisce un errore 403 proibito, come se cercasse di elencare il contenuto di una cartella.

Non c'è differenza nel modo in cui sono impostati i miei bundle: non sono .min.css, le autorizzazioni di accesso sono corrette ecc.



Possibile duplicato dei bundle CSS
sull'hosting

Risposte:


233

I miei bundle sono stati registrati come percorsi che corrispondevano a una cartella effettiva sulla soluzione, ad es ~/Content/forum.

Funziona bene quando il raggruppamento è disattivato (il pacchetto è incluso correttamente!), Ma non quando il raggruppamento è abilitato.

La soluzione è cambiare il nome registrato del bundle in modo che non sia lo stesso di qualsiasi cosa esistente nel file system.


20
Si noti anche se i file CSS si riferiscono a immagini o altri file relativi al CSS, assicurarsi che il nome del file fascio è qualcosa sotto la cartella che contiene l'attuale CSS. Ad esempio, ~/Content/myfolder/bundlese CSS è inferiore aContent/myfolder
Kieren Johnstone

1
Avevo due bundle: ~ / Content / kendo (per css) e ~ / bundles / kendo (per script). Quindi: errore 403. Quando ho cambiato nome a uno di loro, il problema è scomparso. Grazie.
VikciaR

1
@KierenJohnstone scusa per non essere stato specifico, "Change the registered name of the bundle"cosa intendi con questo? - Ho assunto il nome del pacchetto che WE assegniamo. Mi piace (la parte in grassetto) -> bundles.Add(new StyleBundle( "~ / Content / css" ).Include("~/Content/site.css"));
Don Thomas Boyle

1
Azzeccato. Questo sembra essere un bug nel pacchetto nuget FontAwesome.
wolfyuk

1
Anche nel pacchetto select2 nuget.
Tetsujin no Oni

3

Nel mio caso il bundle è stato specificato come directory, @Scripts.Render("~/scripts")quindi IIS non sapeva come servire il file js effettivo, ho cambiato il nome del bundle per rappresentare un file javascript @Scripts.Render("~/scripts.js")e questo lo ha risolto. Lo stesso valeva per il mio pacchetto di stile.


3

Il problema è la convenzione di denominazione che dovrebbe essere il nome del tuo bundle

("bundles/css") 

Questo ha risolto il mio problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.