2015-01-19 2 views
2

Я хотел бы использовать базовые размеры адаптивных изображений на экране пользовательского экрана.Как сделать отдельные страницы кеширования на основе значения cookie?

Я столкнулся с этим отличным решением Adaptive Images, но это решение не будет работать должным образом с лаком.

потому что, например, если клиент a с мобильным будет запрашивать изображение, тогда изображение будет храниться в лаковом лаке в виде небольшого изображения для мобильных телефонов. и это изображение будет позже представлено пользователям настольных компьютеров.

Я думаю, что если я найду способ разделить базу данных кеширования на значение cookie (часть сценария adaptive images), то каждое изображение будет храниться на основе ширины экрана пользователя.

поэтому, если я не ошибаюсь, тогда будет решена плохая ситуация, которую я описал выше.

Не могли бы вы помочь мне создать для этого код vcl.
1. Разделение следует применять только к изображениям (jpg, gif, png).
2. и он должен отделить каждый кэш, основанный на значении cookie_a

Благодарности

ответ

0

В основном то, что вам нужно сделать, это изменить метод vcl_hash, где лак хранит данные, чтобы использовать куки, только тогда, когда URL является изображение (jpg, gif, png).
Для простоты предположим, что Varnish хранит изображение в ключе «image.jpg», что вам нужно сделать, так это сообщить лакокрасочному, что ключ «image- [size] .jpg», где [размер] может быть печенье, размер изображения или обоих.
для решения «только для изображений» вопрос вы должны сделать что-то вроде

if (req.url ~ '(jpg|gif|png)') { 
    // Change the hash here 
} 

Имея это в виду, here вы можете найти хороший пример того, как сделать . он
Другие полезные сайты:

 Смежные вопросы

  • Нет связанных вопросов^_^