In IIS 7.5, quando non ho Output Caching attivato, il mio script PHP imposta con successo il caching del browser nella intestazione Cache-Control:Perché? Output Caching disabilita automaticamente la cache del browser in IIS 7.5
Cache-Control: max-age = 43200, pubblica
Content-Type: text/html
Scadenza: mer, 30 maggio 2012 22:15:18 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.3
Data: Wed, 30 maggio 2012 10:15:18 GMT
Connessione: chiudi
Content-Length: 5105
Tuttavia, se abilito cache di output per i file .php, ottengo la seguente intestazione:
Cache-Control: no-cache, max-age = 43200, pubblica
Content tipo: text/html
Scadenza: mer, 30 mag 2012 22:25:34 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: PHP/5.4.3
Data: Wed, 30 Maggio 2012 10:25:34 GMT
Connessione: chiudi
(si noti che "no-cache" viene aggiunto a Cache-Control prima che il mio script php funzioni)
Non c'è modo, ho trovato, di impedire che "no-cache" venga aggiunta alla cache- Chiave di controllo, se la cache di output è abilitata per un tipo di file. Ho cercato di farlo nel file web.config:
<customHeaders>
<remove name="X-Powered-By" />
<remove name="Cache-Control" />
<add name="Cache-Control" value="public" />
</customHeaders>
che non funziona. Perché questo deve essere così reciprocamente esclusivo? Mi piacerebbe avere sia Output Caching che Browser Caching abilitati.
Sei fantastico. L'aggiunta dell'attributo location ha risolto il mio problema. Non posso ringraziarti abbastanza. Grazie molto! –
Avete suggerimenti per aggiungere un'intestazione http Expires dinamica? Vedi qui: http://stackoverflow.com/questions/10825497/iis-7-5-how-do-you-add-a-dynamic-http-expires-header –
Ha risposto a questa domanda individualmente. –