Mi è capitato, su un progetto
MVC, che uno dei bundle
CSS, quando compilato in
release, ritornasse un codice di
errore HTTP 403.
Il
bundle che dava errore era questo:
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/css/jquery.bxslider.css",
"~/Content/css/Sito.css",
"~/Content/fonts/fontawesome/css/all.min.css"
));
l'errore era di
access denied (HTTP 403).
In pratica, esisteva una cartella fisica, nel sito, che aveva come indirizzo
/Content/css, lo stesso percorso assegnato al bundle, quindi giustamente veniva impedito l'accesso alla cartella.
Per risolvere è bastato usare un percorso
non esistente su file system:
bundles.Add(new StyleBundle("~/bundles/css").Include(
...
));
quindi la soluzione è stata cambiare il percorso da
~/Content/css a
~/bundles/css.
La keyword bundles è solo una convenzione, si può usare qualunqe convenzione, l'importante è che non coincida con un percorso su file system, ad esempio: "~/non/e/un/percorso"
ovviamente va aggiornata anche la pagina
cshtml dove viene richiamato
@Styles.Render("~/bundles/css")
<!--
oppure se si vuole passare un parametro in query string per invalidare
la cache del browser ogni volta che si fa un rilascio con un nuovo numero di versione
-->
@Styles.RenderFormat(@"<link href=""{0}?" + Model.AppVersion + @""" rel=""stylesheet"">", "~/bundles/css")
Ovviamente lo stesso errore potrebbe capitare anche su un bundle
JavaScript.