Устранение неполадок кеширования статических ресурсов в nginx

У меня есть веб-сайт Django, на котором пользователи публикуют изображения для всеобщего обозрения (вроде 9gag).

Я использую хранилище Azure для сохранения и обслуживания изображений. Веб-сервер представляет собой обратный прокси-сервер nginx + коктейль-пулемет. Gzip запущен и работает на моем веб-сайте. Более того, для кэширования статических ресурсов в моем файле конфигурации nginx есть следующее:

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

Моя проблема в том, что когда я тестирую свой веб-сайт с помощью плагина Google Page Speed, мне говорят, что ни одно из изображений, обслуживаемых из хранилища Azure, не кэшируется: enter image description here

Что мне сделать, чтобы включить кеширование для них? Пожалуйста, порекомендуйте. Я новичок в этом, поэтому любая помощь на этом этапе будет большим подспорьем. Заранее спасибо и хороших выходных.


Вот метод def _save моего пользовательского класса Storage, который загружает большой двоичный объект:

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
    )

Как мне установить в нем Cache-Control?

2
задан 16 May 2016 в 15:12
1 ответ

Вам нужно будет установить информацию метатега «Cache-Control» в Azure Storage / blob.

Я использую AWS, и там я могу перейти к конкретному ресурсу (вашим изображениям) и укажите эту информацию.

Также; вы должны иметь возможность указать этот параметр, если вы используете какой-либо API для загрузки изображений из вашего приложения.

0
ответ дан 3 December 2019 в 14:27

Теги

Похожие вопросы