È necessario impostare le intestazioni di controllo della cache sul server. È possibile farlo da attaccare questo nel vostro web.config:
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="30.00:00:00" />
</staticContent>
</system.webServer>
questo sarebbe dire al browser oggi per controllare anche per i nuovi contenuti su qualsiasi cosa statico per 30 giorni.
Per la seconda domanda, fornire un meccanismo per aggiungere una querystring al contenuto. Nel mio attuale progetto comprimiamo e combiniamo javascript e css come parte della build. Quando mettere i link nella pagina è assomiglia:
<script src="/Resources/Javascript/Combined.js?v=2.2.0.1901" type="text/javascript"></script>
querystring è il numero Major.Minor.0.Changeset e le modifiche in qualsiasi momento abbiamo spingere un accumulo, causando il client di ri-prenderlo. La stessa identica cosa accade sui fogli di stile nel loro elemento <link>
.
fonte
2010-01-20 22:32:04
Le cose non sono poi così semplici. Il caching è importante se ti interessa un sito privo di bug e ben funzionante. Desiderate evitare che i visitatori debbano ripetere il download dei contenuti, ma volete anche evitare che i visitatori abbiano contenuti scaduti. In ASP.NET MVC utilizzo un approccio che include un hash MD5 nell'URL che consente di ottenere ciò senza pensarci troppo dopo la sua configurazione. Controlla [la mia risposta qui] (http://stackoverflow.com/questions/936626/how-can-i-force-a-hard-refresh-ctrlf5/6439351#6439351) per il codice sorgente. –
@Drew Certo, questo non era destinato ad essere una panoramica del caching. Basta dire al richiedente che se non hai bisogno di un controllo più dettagliato, le impostazioni predefinite esistenti nei browser e nei server non sono così male. Apache è solitamente configurato per servire ETag, ecc. E i browser di solito vanno avanti con 304s. Hai controllato la tua soluzione, e questa è una buona idea! Probabilmente userò questa idea presto a Django. – JAL