Resolução de problemas de armazenamento em cache do nginx para ativos estáticos

2

Eu tenho um site do Django onde os usuários postam imagens para toda a comunidade ver (como o 9gag).

Eu uso o armazenamento do Azure para salvar e veicular as imagens. O servidor web é um proxy reverso nginx + cocktail gunicorn. O gzip está instalado e funcionando no meu site Além disso, para armazenar em cache os recursos estáticos, tenho o seguinte no meu arquivo conf nginx:

location ~* \.(?:ico|css|js|gif|jpe?g|png)$ { root /home/mhb11/project/myproject; expires 24h; add_header Vary Accept-Encoding; access_log off; }

Meu problema é que, quando eu testo meu site com o plug-in do Google Page Speed, sou informado de que nenhuma das imagens exibidas do armazenamento do Azure está sendo armazenada em cache:

O que eu faço para habilitar o cache para isso? Por favor informar. Eu sou muito novo nisso, então qualquer assistência neste estágio será uma grande ajuda. Agradecemos antecipadamente e tenha um ótimo final de semana.

Este é o método def _save da minha classe de armazenamento personalizada que envia um 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
    )

Como eu configuro o Cache-Control dentro disso?

    
por Hassan Baig 14.05.2016 / 14:28

1 resposta

0

Você precisará definir as informações da tag meta "Cache-Control" no armazenamento / blob do Azure.

Eu uso o AWS e lá posso ir para o recurso específico (suas imagens) e especificar essa informação.

também; você deve ser capaz de especificar essa configuração se estiver usando algum tipo de API para fazer upload de imagens do seu aplicativo.

    
por 14.05.2016 / 23:09