2010-01-20 16 views
5

Estoy usando CakePHP con Apache2. Analizando mis páginas con la herramienta PageSpeed ​​de Google, encuentro dos problemas principales. La primera es que debería habilitar el gzip de contenido, el segundo que debería aprovechar el almacenamiento en caché del navegador para imágenes, javascript y archivos css.Habilite la compresión Gzip y configure los tiempos de caducidad de la caché en CakePHP

He encontrado más o menos cómo remediar esto, pero se trata de cambiar mi archivo .htaccess principal. Esto no se ve realmente como el método CakePHP, si nada porque ese .htaccess es parte de la distribución de CakePHP, y debo recordar guardarlo cuando cambie la versión. ¿Hay una mejor manera de hacer esto?

Por primera, puedo remediar poniendo

php_value output_buffering On 
php_value output_handler ob_gzhandler 

también probé

<IfModule mod_deflate.c> 
    AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/x-javascript 
</IfModule> 

pero no vi ningún resultado con Page Speed.

Para la segunda ahora uso

<IfModule mod_expires.c> 
    ExpiresActive On 
    ExpiresByType application/x-javascript A8640000 
    ExpiresByType text/javascript A8640000 
    ExpiresByType text/css A8640000 
    ExpiresByType image/png A8640000 
</IfModule> 

y que tipo de obras, aunque sigo teniendo el mensaje "Los siguientes recursos cacheables tienen un tiempo de vida corto frescura. Especificar un vencimiento al menos un mes en el futuro para los siguientes recursos: blah blah "

+0

uso de este código en AppController función pública BeforeRender() { \t \t $ this-> respuesta-> compresa(); \t} – Meer

Respuesta

3

No hay" forma de CakePHP "cuando se trata de la compresión GZIP y el almacenamiento en caché del navegador. Esto es definitivamente más un problema de configuración de Apache. Debería poder modificar los archivos .htaccess en su carpeta /app con total impunidad.

Al actualizar/actualizar CakePHP, solo necesita cambiar los archivos en la carpeta /cake. No tendrá que volver a habilitar ninguna configuración de servidor en los archivos .htaccess de la carpeta /app, ya que todo permanecerá igual.

Recuerda siempre: cualquier cosa en la carpeta /app es juego limpio.

+0

¿qué pasa con Cakephp :: response-> compress(); ?? es decir, agregar función pública beforeRender() { \t \t $ this-> response-> compress(); \t} – Meer

0
## EXPIRES CACHING ## 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access plus 1 year" 
ExpiresByType image/jpeg "access plus 1 year" 
ExpiresByType image/gif "access plus 1 year" 
ExpiresByType image/png "access plus 1 year" 
ExpiresByType text/css "access plus 1 month" 
ExpiresByType application/pdf "access plus 1 month" 
ExpiresByType text/x-javascript "access plus 1 month" 
ExpiresByType application/x-shockwave-flash "access plus 1 month" 
ExpiresByType image/x-icon "access plus 1 year" 
ExpiresDefault "access plus 30 days" 
</IfModule> 

Para iniciar el módulo mod_expires en ejecutar Ubuntu siguientes comandos

sudo a2enmod headers 
sudo a2enmod expires 
sudo service apache2 restart 
Cuestiones relacionadas