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:

C#

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:

C#

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

HTML

@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.
Tags:
ASP.NET54 C#236 CSS19 Errori120 JavaScript184 MVC15
Potrebbe interessarti anche: