Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Diego Velox

Como fazer cache de imagens no php?

Recommended Posts

Seguinte pessoal, no meu site tem mais de 50 imagens que sempre aparecem numa include, são imagens dos sites parceiros (estáticas), usando o Page Speed (https://developers.google.com/pagespeed/) vi que o único e grave problema de carregamento do meu site é referente ao cache de informações...

 

ex, tenho a include:

 

parceiros.php

(array dos parceiros)

<img src="" /> 
<img src=""/>
<img src="" /> 
<img src=""/>
<img src="" /> 
<img src=""/>
...

quero fazer um cache de todas essas imagens estáticas.

 

já li diversos tutoriais, mas não consegui entender bem como funciona e nem implementar em meu site, sempre dava erro, conto com a ajuda de vocês pra solucionar esse problema.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi bem, seria algo assim:

 

ob_start("ob_gzhandler");
$expires= 60 * 60 * 24 * 14;
header('Pragma: public');
header('Cache-Control: max-age=' . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');

//Header do tipo de arquivo a ser "cacheado"
header('Content-type: text/javascript');
//Nome do arquivo a ser "cacheado"
require_once('file1.js');

ob_end_flush();

 

Achei aqui: http://stackoverflow.com/questions/3829467/force-cache-thru-header-for-dynamic-generated-js-css-files-not-working-for-all-b

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abra o seu arquivo .htaccess e insira as seguintes linhas:


FileETag MTime Size

<ifModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/gif "access plus 7 days"
 ExpiresByType image/jpeg "access plus 7 days"
 ExpiresByType image/png "access plus 7 days"
</ifModule>

<ifModule mod_headers.c>
 <filesMatch "\.(ico|jpg|jpeg|png|gif|){:content:}quot;>
Header set Cache-Control "max-age=604800, private, must-revalidate"
Header append Vary Accept-Encoding
Header append Vary User-Agent env=!dont-vary
  Header unset Pragma
 </filesMatch>
</ifModule>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Abra o seu arquivo .htaccess e insira as seguintes linhas:


FileETag MTime Size

<ifModule mod_expires.c>
 ExpiresActive On
 ExpiresByType image/gif "access plus 7 days"
 ExpiresByType image/jpeg "access plus 7 days"
 ExpiresByType image/png "access plus 7 days"
</ifModule>

<ifModule mod_headers.c>
 <filesMatch "\.(ico|jpg|jpeg|png|gif|){:content:}quot;>
Header set Cache-Control "max-age=604800, private, must-revalidate"
Header append Vary Accept-Encoding
Header append Vary User-Agent env=!dont-vary
  Header unset Pragma
 </filesMatch>
</ifModule>

 

Achei interessante o código, porém eu uso ele em qual .htaccess?

 

Eu faço uso de urls amigáveis... esse código ficaria no começo ou no final do htaccess? E outra dúvida... eu não quero mudar as imagens... posso acrescentar algo para cachear por um ano ou pra sempre?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa na raiz do servidor, tanto faz ser no comeco ou fim do .htaccess.

Cache infinito nao existe, mas 1 ano sim. É so colocar no lugar de "acess plus 7 days", coloque "acess plus 1 year", e no lugar de "max-age=6040800" para "max-age=31557600". (note que estes valores são em segundos)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Usa na raiz do servidor, tanto faz ser no comeco ou fim do .htaccess.

Cache infinito nao existe, mas 1 ano sim. É so colocar no lugar de "acess plus 7 days", coloque "acess plus 1 year", e no lugar de "max-age=6040800" para "max-age=31557600". (note que estes valores são em segundos)

 

OK! agradeço pelas dicas

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.