2014-07-10 16 views
5

Ho letto documenti di flask in python e ho creato un sito web locale.caching del browser nella cache di file statici?

appena eseguito un test di velocità sul mio sito distribuito su OpenShift con questo strumento here: - Relazione

L'analisi dice che il mio sito non è nascondendo risorse statiche. Dopo googling questo per tutta la mia pena mi risulta che: -

  • Ha qualcosa a che fare con le intestazioni.
  • Le copie della cache vengono conservate nel computer client e anche tra il client e il sito Web.

La mia domanda

  • sono io per includere scadenza e simboli nella sezione html? O nella sezione dell'intestazione HTTP?

  • Se nella sezione dell'intestazione HTTP come si esegue?

Se mi è sfuggito qualcosa nei documenti per favore fatemelo sapere.

risposta

5

utilizzare sia 'SEND_FILE_MAX_AGE_DEFAULT' o guardare in webassests http://webassets.readthedocs.org/en/latest/

domanda simile chiesto qui. Flask static file Cache-Control

+0

Ho visto la domanda menzionata. Il problema è che la cache è impostata su un valore predefinito molto grande. Il mio problema è che i test dimostrano che il mio sito Web non memorizza nella cache elementi statici. Questo risponde al mio requisito di base per il completamento dell'attività. Vorrei anche sapere se i tag vengono aggiunti nelle intestazioni dei documenti HTTP o HTML. Quindi la nuova domanda per consoladare le risorse future. – theSage

+0

Intestazioni HTTP. Le intestazioni di risposta. – PsyKzz

+0

Proprio allora. Ma perché il contenuto non viene memorizzato per molto tempo? Ho controllato ulteriormente su http://tools.pingdom.com/fpt/ – theSage

0

Ho avuto questo problema e non ho trovato una risposta online che funzionasse per me.

Poi ho capito che i miei file statici non vengono serviti da Flask a tutti! Flask genera solo il mio HTML. I file statici sono serviti direttamente dal mio server web (nel mio caso Apache, il tuo potrebbe essere Nginx o qualcos'altro).

Istruzioni per l'Apache:

prima installare moduli pertinenti

sudo a2enmod expires 
sudo a2enmod headers 

Quindi aggiungere qualcosa di simile al tuo .htaccess del file:

# Expire headers  
<ifModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType image/jpeg "access plus 1 month" 
    ExpiresByType image/png "access plus 1 month" 
    ExpiresByType image/gif "access plus 1 month" 
    ExpiresByType text/css "access plus 1 month" 
    ExpiresByType text/javascript "access plus 1 month" 
    ExpiresByType application/javascript "access plus 1 month" 
</ifModule> 

# Cache-Control Headers 
<ifModule mod_headers.c> 

    <filesMatch "\.(ico|jpe?g|png|gif)$"> 
    Header set Cache-Control "max-age=2592000, public" 
    </filesMatch> 

    <filesMatch "\.(css|js)$"> 
    Header set Cache-Control "max-age=2592000, public" 
    </filesMatch> 

</ifModule> 
# END Cache-Control Headers 

configurazione di Apache modificato da Maggiori dettagli su come configurarlo nello Apache manual.

Problemi correlati