Въпрос за кеширане на изображения

scoobydoo

Know you can!
Здравейте 🙂

Как мога да кеширам в браузъра точно определени изображения от даден сайт. Примерно тези които са от дизайна и не се променят. Потърсих и видях някои неща свързани с хедър информацията, но не ми е много ясно как точно и дали е възможно да се кешират точно определени изображения.

Или да не би те да си се кешират сами и аз да не трябва да го правя?
 
Re: Въпрос за кеширане на изображения

Хедърите ги праща уеб сървъра, така че трябва само да си направиш подходяща настройка. Трябва да имаш пуснат mod_expires и после да си настроиш кое и как да се кешира. Например слагаш във виртуалния хост:

<Directory /home/www/mysite/staticfiles>
ExpiresActive On
ExpiresDefault "access plus 60 days"
</Directory>

или

<Directory /home/www/mysite/staticfiles>
ExpiresActive On
ExpiresByType image/gif "access plus 60 days"
ExpiresByType image/jpeg "access plus 60 days"
ExpiresByType image/png "access plus 60 days"
ExpiresByType text/plain "access plus 60 days"
ExpiresByType text/css "access plus 60 days"
</Directory>

Настройките и вариантите са много, прегледай тук: http://httpd.apache.org/docs/2.0/mod/mod_expires.html
 
Re: Въпрос за кеширане на изображения

Аз ползвам следния .htaccess файл:
Код:
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresDefault "access plus 1 seconds"
  ExpiresByType text/html "access plus 1 seconds"
  ExpiresByType image/gif "access plus 2592000 seconds"
  ExpiresByType image/jpeg "access plus 2592000 seconds"
  ExpiresByType image/png "access plus 2592000 seconds"
  ExpiresByType text/css "access plus 604800 seconds"
  ExpiresByType text/javascript "access plus 216000 seconds"
  ExpiresByType application/x-javascript "access plus 216000 seconds"
</ifModule>
<ifModule mod_headers.c>
  <filesMatch "\\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>
  <filesMatch "\\.(css)$">
    Header set Cache-Control "max-age=604800, public"
  </filesMatch>
  <filesMatch "\\.(js)$">
    Header set Cache-Control "max-age=216000, private"
  </filesMatch>
  <filesMatch "\\.(xml|txt)$">
    Header set Cache-Control "max-age=216000, public, must-revalidate"
  </filesMatch>
  <filesMatch "\\.(html|htm|php)$">
    Header set Cache-Control "max-age=1, private, must-revalidate"
  </filesMatch>
</ifModule>
Постави това в папката където ти се намират картинките и в папката където ти се намират js и css файловете. Ако сървъра ти има инсталирани тези два модула, по-голямата част от статичната информация, ще се кешира на компютъра на потребителя.
 

Back
Горе