2009-10-14 17 views
22

Recentemente sono tornato a un progetto di sito Web che è stato sul backburner. Da quando ho iniziato a lavorare, ho notato che le modifiche css e javascript non vengono riconosciute dall'applicazione quando è in esecuzione in Visual Studio Development Server. Questo precedentemente funzionava bene. Potrei cambiare fogli di stile e javascript e avviare l'app e testare. Ora l'unico modo per testare l'applicazione è pubblicarlo sul mio server IIS locale (anche se credo che riavviare il mio pc risolva anche il problema).Visual Studio Development Server non sta aggiornando css e javascript?

utilizzando Visual Studio 2008 (9.0.30729.1)

Le cose che sono cambiate da quando sono certo che funzionava correttamente è il sistema operativo, da Vista x64 Edition Home Premium a Win 7 x64 Ultimate e ho spostato la fonte del progetto da c: a d :. Anche se sono tornato a C: con gli stessi risultati negativi. Ho anche spostato alcune funzionalità in servizi WCF separati, ospitati da app console (due host di servizio) che vengono messi in debug all'avvio del sito web in modalità debug.

L'arresto del server di sviluppo non fa nulla. Estrazione (utilizzando VSS 2005) TUTTI i file per garantire che nulla sia letto solo non fa nulla. L'unica cosa che funziona è pubblicare su IIS o riavviare il mio computer. Entrambi indesiderabili. Sarò anche soddisfatto se c'è un processo che devo terminare ogni volta che interrompo il debug, per assicurarmi di non usare copie precedenti di cose.

Qualche soluzione?

+0

Anche se ci sono soluzioni manuali per questo (Ctrl + F5), ho comunque creato un problema con Microsoft Connect per provare a fare in modo che l'ambiente di sviluppo IDE esegua automaticamente questi passaggi. Vedi qui: https://connect.microsoft.com/VisualStudio/feedback/details/800421/visual-studio-development-server-not-reflecting-updated-css – atconway

risposta

29

Il server potrebbe inviare intestazioni al browser che lo fanno continuare a utilizzare copie cache. Il modo più semplice per verificare ciò è emptyyourbrowsercache.

Se questo lo risolve, è necessario studiare il HTTP headers che si ottiene dal server. Il developertools (a.k.a F12 tools) nel browser di scelta esporrà le intestazioni restituite dal server. Quindi decidere se si desidera continuare a utilizzare queste impostazioni di memorizzazione nella cache (good for speed) o modificarle (good for development).

E come regolate queste intestazioni, chiedete? Dipende dal server. Ecco un link alle istruzioni per i server comuni:

+1

Grazie! svuotare la cache del mio browser ha risolto il problema. Vorrei provare questo tre giorni fa :) –

+13

Un modo più semplice per farlo sarebbe premere CTRL + F5 nel tuo browser – sshow

+6

Questo non funziona per me. Testato con 4 diversi browser. Vuotato il cache su tutti loro. Premi CTRL + F5 più volte di quanto potessi contare. Il server di sviluppo Asp.net non vuole essere aggiornato con le modifiche di markup/css/javascript. Arrestare e avviare il server di test è l'unico modo per far sì che riconosca le modifiche. – NinjaBomb

5

Un modo veloce è quello di aggiungere parametri casuali dopo attributo src lo script o css del file. per esempio

<script type="javascript" src="@Url.Content("~/scripts/myScripts.js?" + DateTime.Now.ToString("ddMMHHmmss")"></script> 

modo del browser sarà sempre assumere il suo un nuovo file e non cache.

Assicurarsi di rimuoverlo quando si esegue la distribuzione sul server live.

0

tenta di utilizzare

<link href"~/Content/Style.css" rel="stylesheet"/>

insieme con fasci.Questo ha funzionato per me

Problemi correlati