J'utilise CakePHP avec Apache2. Analysant mes pages avec l'outil PageSpeed de Google, je trouve deux problèmes principaux. Le premier est que je devrais activer le gzipping du contenu, le second que je devrais tirer parti de la mise en cache du navigateur pour les images, les fichiers javascript et les fichiers CSS.Activer la compression Gzip et définir les durées d'expiration du cache dans CakePHP
J'ai plus ou moins trouvé comment remédier à cela, mais cela implique de changer mon fichier principal .htaccess. Cela ne ressemble pas vraiment à la manière de CakePHP, sinon rien parce que .htaccess fait partie de la distribution de CakePHP, et je dois me rappeler de le garder lors du changement de version. Y a-t-il une meilleure manière de faire cela?
Pour la première, je peux remédier en mettant
php_value output_buffering On
php_value output_handler ob_gzhandler
J'ai aussi essayé
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html text/plain text/css text/javascript application/x-javascript
</IfModule>
mais je ne vois pas de résultat avec PageSpeed.
Pour la deuxième, j'utilise maintenant
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType application/x-javascript A8640000
ExpiresByType text/javascript A8640000
ExpiresByType text/css A8640000
ExpiresByType image/png A8640000
</IfModule>
et il fonctionne en quelque sorte, bien que je reçois toujours le message « Les ressources cacheable suivantes ont une courte durée de vie de fraîcheur. Spécifiez une expiration au moins un mois à l'avenir pour les ressources suivantes: bla bla "
utiliser ce code dans la fonction publique AppController beforeRender() { \t \t $ this-> response-> compress(); \t} – Meer