19 messaggi dal 14 marzo 2001
Ciao a tutti,
ho i lseguente problema: quando aggiorno un'applicazione web capita che i file .css e .js modificati non vengano riscaricati dai browser client che continuano ad utilizzare quindi quelli in cache.
Esiste un modo definitivo per ovviare a questo problema?
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
nella pagina web, dovresti modificare il percorso a quel file .js o .css. Se l'url è diverso, il browser non potrà usare la copia cache e sarà costretto a scaricare la nuova versione del file. E' sufficiente aggiungere un parametro in querystring, al solo scopo di differenziare un po' l'url.
<script type="text/javascript" src="default.js?v=1"></script>

...e di volta in volta lo cambi in v=2, v=3, e così via.

Se usi ASP.NET MVC, questo piccolo espediente viene già messo in atto dal meccanismo di bundling, quindi ecco un altro buon motivo per referenziare i file statici .js e .css attraverso dei Bundles.
Come vedi in questo articolo (e in questa immagine in particolare), le richieste ai bundle .css e .js contengono appunto un parametro querystring v, il cui valore cambierà automaticamente (senza il tuo intervento) di volta in volta, ad ogni modifica che apporti ai file statici compresi nel bundle.

Nella documentazione infatti si legge:

Once you update one file in a bundle, a new token is generated for the bundle query string parameter and the full bundle must be downloaded the next time a client requests a page containing the bundle.


Grazie a questo sistema eviterai il problema che hai riscontrato.

ciao,
Moreno
Modificato da BrightSoul il 23 novembre 2013 12.23 -

Enjoy learning and just keep making
19 messaggi dal 14 marzo 2001
Ciao, utilizzando le web forms proverò il primo metodo (che tra l'altro avevo già sbirciato altrove).
Grazie mille!
11.886 messaggi dal 09 febbraio 2002
Contributi
totti74 ha scritto:

utilizzando le web forms proverò il primo metodo

ciao, scusami non sono stato preciso nell'esposizione: puoi aggiungere il bundling anche ad un progetto Webforms, perché alla base delle due tecnologie abbiamo comunque lo stesso core, definito per questo "One ASP.NET". Qui c'è un articolo che ti mostra i passi da compiere per aggiungere il bundling al tuo progetto WebForms, nel caso tu voglia usarlo.
http://blogs.msdn.com/b/rickandy/archive/2012/08/14/adding-bundling-and-minification-to-web-forms.aspx

ciao,
Moreno
Modificato da BrightSoul il 27 novembre 2013 13.48 -

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.