
Tengo un sitio web de Django donde los usuarios publican imágenes para que las vea toda la comunidad (algo así como 9gag).
Utilizo el almacenamiento de Azure para guardar y entregar las imágenes. El servidor web es un proxy inverso nginx + cóctel gunicorn. Gzip está funcionando en mi sitio web. Además, para almacenar en caché los activos estáticos, tengo lo siguiente en mi archivo de configuración de nginx:
location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { root /home/mhb11/project/myproject; expires 24h; add_header Vary Accept-Encoding; access_log off; }
Mi problema es que cuando pruebo mi sitio web con el complemento Google Page Speed, me dicen que ninguna de las imágenes que se muestran desde el almacenamiento de Azure se está almacenando en caché:
¿Qué hago para habilitar el almacenamiento en caché para estos? Por favor avise. Soy bastante nuevo en esto, por lo que cualquier ayuda en esta etapa será de gran ayuda. Gracias de antemano y que tengas un buen fin de semana.
Este es el def _save
método de mi clase de Almacenamiento personalizada que carga un blob:
def _save(self,name,content):
blob_service = BlobService(account_name=accountName, account_key=accountKey)
import mimetypes
small_content = content
content.open()
content_type = None
if hasattr(content.file, 'content_type'):
content_type = content.file.content_type
else:
content_type = mimetypes.guess_type(name)[0]
content_str = content.read()
blob_service.put_blob(
'pictures',
name,
content_str,
x_ms_blob_type='BlockBlob',
x_ms_blob_content_type=content_type
)
¿Cómo configuro Cache-Control dentro de eso?
Respuesta1
Deberá configurar la información de la metaetiqueta "Control de caché" en Azure Storage/blob.
Utilizo AWS y allí puedo ir al activo específico (sus imágenes) y especificar esa información.
También; Debería poder especificar esta configuración si está utilizando algún tipo de API para cargar imágenes desde su aplicación.