memoize cache python flask cache-control static-files

python - cache - flask caching memoize



Flask archivo estático Cache-Control (2)

Estoy intentando establecer una caducidad de caché razonable para mis archivos JS mientras estoy en desarrollo. Tengo la configuración estándar, donde HTML, CSS y JS viven bajo el directorio static .

Los docs mencionan esto, pero por mi vida no puedo hacer que esto funcione. He intentado ambos métodos implícitos, primero

class MyFlask(flask.Flask): def get_send_file_max_age(self, name): if name.lower().endswith(''.js''): return 60 return flask.Flask.get_send_file_max_age(self, name) app = MyFlask(__name__)

y

app.config[''SEND_FILE_MAX_AGE_DEFAULT''] = 60

Ambos no han tenido ningún efecto, mis archivos JS bajo / static siguen regresando con el tiempo de espera de caché predeterminado,

Cache-Control: public, max-age=43200

Cualquier puntero apreciado.


Es posible que desee consultar webassets para administrar la caducidad del caché. Funciona tanto en el entorno de desarrollo como en el de producción.


Tuve este problema y no pude encontrar una respuesta en línea que funcionó para mí.

¡Entonces me di cuenta de que mis archivos estáticos no se están procesando desde Flask! Frasco solo genera mi HTML. Los archivos estáticos son enviados directamente por mi servidor web (Apache en mi caso, el suyo puede ser Nginx o algo más).

Aquí están las instrucciones para Apache.

Primero instale el módulo mod_expires:

sudo a2enmod expires

Luego agrega algo como esto a tu archivo .htaccess :

ExpiresByType text/css "access plus 1 year" ExpiresByType application/javascript "access plus 1 year" ExpiresByType image/* "access plus 1 year"

Más detalles sobre cómo configurarlo en el manual de Apache .