2009-07-16 3 views
15

Sto lavorando a un'applicazione di test basata su ASP.NET MVC. Sono nuovo del materiale CSS, quindi sto imparando anche questo.CSS non aggiornato durante il debug dell'applicazione ASP.NET MVC

ho creato una pagina master denominato "new.master" e ha creato un nuovo css "new.css". Chiamo la vista dal controller come:

return View ("About", "new"); 

Quello che sto facendo è che sto frequente aggiornamento della pagina CSS e master. Quindi eseguo frequentemente l'applicazione in modalità di debug. Dopo un po 'smetto di vedere l'effetto delle modifiche in css. Quando "visualizzo il sorgente" in chrome e controllo il css, mostra una versione precedente.

Quando cambio il nome di entrambi pagina master e CSS, comincio a ricevere Aggiornate ma che funziona per qualche tempo e poi di nuovo mi fermo ottenere gli aggiornamenti CSS. Hai affrontato questo problema? Come posso ripararlo? (È terribilmente fastidioso!)

risposta

43

Il browser sta memorizzando nella cache il css. Se si forza un aggiornamento con F5 che dovrebbe visualizzare eventuali modifiche.

+2

Grazie mille. ** ha ** risolto il mio problema. E 'stato come l'inferno. Ho iniziato a mettere in discussione la mia capacità di apprendimento in un punto del tempo. :) – Hemant

+1

Il browser stava giocando a dei giochi mentali su di me - Il testo che ho aggiunto è stato mostrato così ho * presunto * che era rinfrescante eppure CSS non lo era. F5 ha fatto il trucco. – radarbob

+0

un modo per farlo dal codice ogni volta che una nuova pubblicazione/distribuzione? –

2

è molto probabile che i CSS viene memorizzato nella cache nel browser, cache del browser così semplicemente clearch, Dovrebbe aiutare

10

Penso che questo possa essere un problema di cache del browser. In IE e FF di solito faccio Ctrl + F5 o Ctrl + pulsante Aggiorna. Inoltre è possibile cancellare manualmente la cache. Per IE puoi usare lo IE Dev Toolbar e per Firefox c'è lo Firebug con entrambi puoi cancellare facilmente la cache. Non sono sicuro di chrome, mi dispiace.

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

+0

Grazie per la risposta. È buono, ma l'altro è stato il primo a segnalare il problema della cache, quindi l'ha accettato. Hai ottenuto il mio voto però :) Grazie ancora. – Hemant

1

ho trovato un altro caso in cui questo può accadere.

abbiamo iniziato la nostra applicazione con pochi collegamenti semplici ai file CSS, poi passato a utilizzare bundling. Abbiamo aggiornato il vecchio <link href="@Url.Content("~/somePath/someStyle.css")" rel="stylesheet" type="text/css" /> a @Styles.Render("~/Styles/bundles/someStyle").

Usiamo anche un paio di fogli di stile che sono necessari solo per alcune pagine, e hanno il loro fascio proprio. Ora, per uno di questi, abbiamo dimenticato di cambiare il tag link nell'istruzione @ Styles.Render.

Il risultato è stato che questo CSS ottenuto aggiornato di tanto in tanto (così abbiamo pensato che tutto è OK, lo stile non mancava), ma non abbiamo potuto influire quando l'aggiornamento avviene. Quando ho iniziato a modificare il file, mi sono reso conto che nulla di ciò che faccio (svuotare la cache, ricostruire il progetto, riavviare Cassini) attiverà un aggiornamento. Il browser ha sempre ottenuto un 304 Not modified.

Quindi, se si dispone di questi sintomi, controllare i collegamenti.

0

Mi è successo qualcosa di simile.

Poi improvvisamente notato il pacco è stato aggiunto alla pagina:

@Styles.Render("/bundles/classifiedDetailCss") 

invece di:

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

Nota dispersi ~ personaggio nel primo esempio.

(Il primo esempio lavorato solo dopo aver costruito il progetto, altrimenti sarebbe tornato una versione in cache anche in modalità di debug.)

0

Questo è successo a me quando ho avuto una visione maestro che caricare una vista parziale a seconda di quale parziale vista l'utente voleva vedere, ma la risposta da questa pagina aiutato, https://forums.asp.net/t/1763494.aspx?applying+CSS+layouts+to+a+partial+view

CSS deve essere referenziato in del documento HTML. Come conseguenza non è possibile includerli in una vista parziale ... perché in tale caso il css è incluso nel corpo Html. Si prega di leggere il foglio di stile in testa alla pagina che ospita la vista parziale.

Avrei collegamenti css nelle mie viste parziali e qualsiasi modifica ai file css non si verificherebbe mai, anche se premessi Ctrl-F5 nel browser. Ho anche provato a cancellare il contenuto della cache negli strumenti di sviluppo. Ho notato osservando i fogli di stile di origine che i file css collegati dalle viste parziali non stavano cambiando, quindi la soluzione per me era spostare i collegamenti css dalla vista parziale alla vista principale dove si sarebbero tenute queste viste parziali.