Hello,
je viens de me rendre compte que les css et js sont à la fois packés et obfsucés, c'est un enorme gain de performance, c'est top !
Mais pourquoi ne pas en avoir profité pour activer la compression (gzip) pour diminuer la taille du fichier, et donc le temps de chargement d'autant ?
(gains de 13% sur le css par defaut). Vous allez me dire que ca fait encore travailler le serveur ;) mais pas de soucis, ca n'est fait qu'une fois, pas a chaque requete.
- Arnaud
Hors ligne
A titre personnel, comment procéder pour la compression ?
Hors ligne
la compression des fichiers s'active sur votre serveur et c'est conseillé. Après je ne sais pas si on peut forcer juste pour pwg
Hors ligne
d'apres moi si vous voulez compression, alors il faut configurer correctement le serveur independamment de piwigo.
<IfModule mod_deflate.c> AddOutputFilterByType DEFLATE application/javascript AddOutputFilterByType DEFLATE text/css </IfModule>
Hors ligne
Merci pour vos réponses.
J'ai placé le code dans le .htaccess mais sans effets :-(
=> Serveur mutualisé chez o2switch.fr
Hors ligne
Etant donné que piwigo doit dépendre le moins possible du serveur sur lequel il se trouve, je parlais plutot d'une compression applicative coté php, et non celle du module apache.
Voici une méthode la plus 'propre' pour le faire, qui peut sans probleme se mixer avec l'obsufcation ou le 'packing' des css
zipstylesheet.css
<FILES zipstylesheet.css>
SetHandler application/x-httpd-php
</FILES>
<?php
header('Content-type: text/css');
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
ob_start("ob_gzhandler");
else
ob_start();
/* les css */
include('master.css');
include('tempkate.css');
include('grid.css');
include('print.css');
include('handheld.css');
//qu'on peut bien sur aller chercher dans une boucle foreach($files as $file) si besoin
ob_end_flush();
?>
qu'en pensez vous ?
Hors ligne
arno a écrit:
Etant donné que piwigo doit dépendre le moins possible du serveur sur lequel il se trouve, je parlais plutot d'une compression applicative coté php, et non celle du module apache.
Voici une méthode la plus 'propre' pour le faire, qui peut sans probleme se mixer avec l'obsufcation ou le 'packing' des css
....?>
qu'en pensez vous ?
Pourquoi pas, mais je peux te dire que ton .htaccess ne fonctionnera pas sur n'importe quel serveur. Deuxiement il est couteux de lancer un php sur n'importe quel hebergeur mutualisé car l'hebergeur fera soit un suexec/cgi soit fcgid.
Si on veut être aussi optimal, il faudrait ne pas faire appel à php.
Arno, si tu veux j'avais deja fait le php qui marche bien avec css/js et qui gere aussi le Expires/Max-Age ainsi que le If-Modified-Since. Tu pourrais faire un joli plugin...
Hors ligne
chez ovh j'ai configuré un truc comme ça:
<FilesMatch "\.(jpg|jpeg|JPG|png|gif|ico)$"> Header set Cache-Control "max-age=2592000, public" </FilesMatch> <FilesMatch "\.(css|js)$"> Header set Cache-Control "max-age=2592000, public" SetOutputFilter DEFLATE </FilesMatch> <IfModule mod_deflate.c> AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript </IfModule>
Hors ligne
Question bête du soir :
A quoi voit-on que la compression est effective ?
Hors ligne
en regardant les en-têtes (headers) de la réponse, avec firebug ou équivalent, ou des sites fait pour.
Si ton navigateur accepte la compression, il envoie une requête avec "Accept-Encoding: gzip, deflate" et si le serveur renvoie un truc compressé la réponse contient "Content-Encoding: gzip".
Par exemple chez toi ce n'est pas le cas: http://www.webpagetest.org/result/11022 … /#request6
chez moi c'est bon: http://www.webpagetest.org/result/11022 … /#request3
Hors ligne
Merci pour ces explications concrètes :-)
Hors ligne