2015-02-12 14 views
7

Quando eseguo il mio codice da Visual Studio in modalità di rilascio e controllo il foglio di stile in bundle, posso vedere i miei aggiornamenti ai file css in quel pacchetto. Tuttavia, quando pubblico il sito Web sul server o sul mio computer locale, le mie modifiche nei fogli di stile non sono state apportate. Il foglio di stile raggruppato è ancora quello vecchio.La pubblicazione di un sito Web non sta aggiornando i miei bundle CSS

Ho provato un reset di IIS, un clean build/rebuild, cancellato tutti i file dalla cartella IIS e ripubblicato.

Sto usando MENO se questo fa alcuna differenza.

mio pacco config:

bundles.Add(new StyleBundle("~/bundles/requiredStyles").Include(
    "~/Content/Style/Libs/bootstrap.min.css", 
    "~/Content/Style/Libs/font-awesome.min.css", 
    "~/Content/Style/Globals/application.css", 
    "/Content/Style/Libs/muliDropdown.css", 
    "~/Content/Style/Libs/smoothDivScroll.min.css", 
    "~/Content/Style/Libs/jasny-bootstrap.min.css" 
)); 

Sto controllando il CSS in bundle visitando http://www.mywebsite.com/bundles/requiredStyles

Così ho fatto un cambiamento di application.css che va bene se ho colpito giocare in Visual Studio (in modalità di rilascio), ma quando pubblico sul mio IIS locale, la mia modifica non è più lì.

+0

Se hai già provato a eliminare tutti i file dalla cartella IIS e a pubblicare nuovamente il sito, l'unica cosa che posso pensare è che il browser sta memorizzando nella cache la vecchia versione del file, ma presumo che tu abbia già controllato quello , destra? –

+0

Provato tutto questo e altro ancora. Per ora ho disattivato le 'smarts' di BundleTable.EnableOptimizations = false, quindi ora il bundle sputa solo ogni percorso di file css separatamente, invece di metterli tutti in uno e minifying. – garethb

risposta

30

Questo può accadere se si ha una versione minificata di un file css nella stessa directory del file non ancora terminato.

Per esempio, se avete i seguenti file:

 

    ~/Content/bootstrap.css 
    ~/Content/bootstrap.min.css 

nella directory, e si registra il file "bootstrap.css" nel vostro pacco, l'ottimizzatore primo tentativo di utilizzare il "bootstrap. min.css "durante la pubblicazione. Se hai aggiornato solo il file "bootstrap.css" e non hai aggiornato il file "bootstrap.min.css", otterrai i vecchi stili da "bootstrap.min.css". È possibile risolvere questo problema eliminando il file "bootstrap.min.css" o aggiornandolo.

Questo non succede in una build di debug perché non tirare i file minified se la compilazione è impostato per eseguire il debug utilizzando il seguente:

<system.web> 
    <compilation debug="true" /> 
    <!-- Lines removed for clarity. --> 
</system.web> 

È anche possibile sovrascrivere l'impostazione web.config da disabilitazione delle ottimizzazioni tramite:

 

    BundleTable.EnableOptimizations = false; 

Questo andrebbe all'interno del file BundleConfig.cs.

+0

La disattivazione delle ottimizzazioni funziona correttamente per me. Grazie ! –

+0

disabilitazione ottimizzazionez prima che la registrazione del bundle in BundleConfig.cs funzionasse anche per me –

1

Nel mio caso, anche bootstrap.min.css esiste nella cartella dei contenuti che ho rimosso e il sito web funziona correttamente.

come da Filip Stanek menzionato "l'ottimizzatore primo tentativo di utilizzare il '' file durante pubblicare" bootstrap.min.css

anche se non abbiamo aggiungerlo in config fascio durante la pubblicazione punto di codice in "bootstrap .min.css "

0

Recentemente ho riscontrato un problema simile con il raggruppamento. Uso angularJS in un progetto webapi in visual studio.

My web.config aveva il debug impostato su true. L'ho impostato su false. Nessun cambiamento.

Quindi ho provato a impostare le condizioni del compilatore su true (in global.asax.cs | app ...start method):

'#if DEBUG' 
     'BundleTable.EnableOptimizations = true;' 
'#else' 
     'BundleTable.EnableOptimizations = true;' 
'#endif' 

Anche questo non ha funzionato.

Infine ho finito per spostare il file referenziato/mancante (uno <controllerName>.js) nel pacchetto in un altro punto dello stack. Quando eseguo il debug, decomlego il file dal pacchetto perché lo includo direttamente nell'index.html. È possibile che VS non abbia compilato la modifica quando l'ho ripristinata.

' bundles.Add(new ScriptBundle("~/SomeBundleName.js") 
      .Include("~/Scripts/IWASMissingIntheBundle.js") 
      .Include("~/Scripts/IWASNEVERMISSINGANDstillhere.js") 
      .Include("~/Scripts/MOVEDIWASMissingHEREANDNOWImFound.js")' 

La mia proposta è che il compilatore non prendere il cambiamento e senza riguardo a pulizia e ricostruzione ancora non ha fatto. Dopo aver spostato il file e ripubblicato, sembrava funzionare.

Ma ho eliminato anche la cache nel browser, non solo dal pulsante "Cancella cache" che utilizzo in Chrome, ma anche dal pannello Debugger | Network. Qualche passo attraverso quanto sopra dovrebbe aiutare.

Problemi correlati