8

Sto iniziando a utilizzare .NET 4.5 integrato nel minification e nel bundling per minimizzare & raggruppare i miei CSS e JavaScript. La minifrazione di JavaScript funziona alla grande, tuttavia, ho avuto problemi con la minifrazione CSS. Creo un fascio stile utilizzando il codice qui sotto -Bundle di stile in .NET 4.5 e icone nel CSS

var myCss = new string[] 
             { 
              "~/Content/jquery.css", 
              "~/Content/app.css", 
             }; 
bundles.Add(new StyleBundle("~/bundles/MySiteCss/").Include(myCss)); 

e poi li ho di riferimento nel .cshtml (file rasoio), come di seguito -

@Styles.Render("~/bundles/MySiteCss/") 

E minifies il file CSS. Tuttavia, se i file CSS contengono stili che hanno riferimenti all'immagine di sfondo, come background-image: url ('img/icon.png'), tenta di caricare questo file icona da una nuova posizione (derivata dal nome del bundle) = /bundles/MySiteCss/img/icon.png

Poiché l'icona non esiste nella posizione, non viene caricata e visualizzata nella pagina.

+0

Cambialo in un url assoluto. – ZippyV

risposta

10

È necessario che i bundle e il CSS siano serviti dallo stesso posto per farlo funzionare facilmente. Ad esempio, modificare la linea fascio di essere:

bundles.Add(new StyleBundle("~/Content/MySiteCss/").Include(myCss)); 

E aggiornare il vostro riferimento così:

@Styles.Render("~/Content/MySiteCss/") 
+0

che ha funzionato, grazie per la rapida risposta! – govin

+0

Vorrei che il bundling fosse abbastanza intelligente da riscrivere quei percorsi mentre si minimizza, Squish Può farlo, altri lo possono fare anche io, quindi non vedo una ragione per cui il bundling di Microsoft non potrebbe farlo. – Giedrius

+0

@Giedrius Questo è sicuramente nella lista delle cose da fare –