Jump to content

Recommended Posts

Bonjour,
 
Je rencontre un petit souci pour activer la compression GZIP sur ma boutique.
 
Informations sur la boutique:
 
Informations sur votre serveur: Linux #1 SMP Tue Sep 24 18:07:54 CEST 2013 x86_64
Version du logiciel serveur: Apache
Version de PHP: 5.3.16
 
Version de PrestaShop: 1.5.5.0
URL de votre boutique: http://vapolique.fr/
 
hebergement: OVH mutualisé
 
Fichier .htaccess
 
Mon fichier .htaccess est généré par prestashop, j'ai tout coché dans CCC
 
J'ai ça pour le GZIP dans mon .htaccess :
 

FileETag INode MTime Size
<IfModule mod_deflate.c>
	<IfModule mod_filter.c>
		AddOutputFilterByType DEFLATE text/html text/css text/javascript application/javascript application/x-javascript
	</IfModule>
</IfModule>

Le problème

 

Dans gtmetrix.com, la compression GZIP n'est pas détectée pour les fichiers en caches (cf pj gzip.png)

Ma boutique est assez lente et ca pourrait me faire gagner beaucoup en perf apparemment.

 

J'ai tenté plusieurs modification trouvées ça et la sur le web mais sans résultat.

Pourriez vous m'aider ?

 

 

 

 

 

post-749222-0-12023600-1389771446_thumb.png

Link to comment
Share on other sites

Bonjour,

 

d'après webpagetest la compression gzip n'y fera rien car il y a 2 problème avec votre boutique :

 

1 fichier manquant ie8.css qui fait perdre 0.4 s

et surtout un serveur trop lent qui mets 6.5 s à répondre donc avant le début du moindre téléchargement qui lui ne dure que 1.5 s malgré le fichier manquant

Link to comment
Share on other sites

Bonjour,

 

Merci pour le signalement du fichier manquant. J'ai corrigé ça.

En effet le serveur est vraiment lent, je vais voir avec l'admin.

 

Pour ce qui est de l'activation du gzip ça m’intéresse toujours de savoir comment la faire marcher. Si quelqu'un sait comment régler ce bug.

Link to comment
Share on other sites

Ce code a fonctionné pour moi. Vous pouvez mettre dans votre fichier htaccess. Dans le dossier prestashop. Ajouter ce code avant d'autres codes de défaut.

 

<Files *.html>

SetOutputFilter DEFLATE

</Files>

<Files *.css>

SetOutputFilter DEFLATE

</Files>

<Files *.js>

SetOutputFilter DEFLATE

</Files>

 

Vous devez activer le système de mise en cache. Il fonctionne très bien.

Edited by J.Sahu (see edit history)
Link to comment
Share on other sites

Bonjour et merci pour ces pistes.

 

En fait le gzip est bien actif mais les fichiers css et js en cache ne sont pas gzipés

Peut être un conflit dans les caches...

C'est important car sans gzip je suis a 700Ko et avec gzip je suis à 300Ko, une sacré différence!

Link to comment
Share on other sites

Bonjour,

 

Je ne reproduis pas votre problème, j'ai bien sur ces javascripts du "Content-Encoding  : gzip et Transfer-Encoding  :  chunked"  ce qui apparemment n'est effectivement pas dans la réponse de votre serveur pour ce fichier (?!). Peut être que le mod apache n'est pas bien installé sur votre serveur.? Que se passe t-il si vous enlevez les if dans l htaccess (et leur fermetures) ?

<IfModule mod_deflate.c>
	<IfModule mod_filter.c>

Si le serveur ne fait pas cette compression, il est possible de passer par php, d'une manière un peu détournée pas très propre

 

en mettant un .htaccess dans le dossier qui contient par exemple

RewriteEngine On
RewriteRule (.*)\.js$ compressejs.php?file=$1.js [L]
RewriteRule (.*)\.css$ compressecss.php?file=$1.css [L]

et les fichiers php dans le meme dossier avec par exemple compressejs.php

<?php
ob_start("ob_gzhandler");
header("Content-type: application/javascript; charset: UTF-8");
$url = str_replace('..', '', $_GET['file']);
if (preg_match('#.js$#Ui', $url))
	$file = $url;
if($file and file_exists($file))
	if ($content = file_get_contents ($file))
		echo $content;



et compressecss.php

<?php
ob_start("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
$url = str_replace('..', '', $_GET['file']);
if (preg_match('#.css$#Ui', $url))
	$file = $url;
if($file and file_exists($file))
	if ($content = file_get_contents ($file))
		echo $content;

Ce n'est qu'a titre d'exemple pour contourner des serveurs qui ne peuvent gziper ces contenus.

 

Essayez de voir si votre fichier devient gzipé.

 

Cordialement

  • Like 1
Link to comment
Share on other sites

Bonjour,

 

Je ne reproduis pas votre problème, j'ai bien sur ces javascripts du "Content-Encoding  : gzip et Transfer-Encoding  :  chunked"  ce qui apparemment n'est effectivement pas dans la réponse de votre serveur pour ce fichier (?!). Peut être que le mod apache n'est pas bien installé sur votre serveur.? Que se passe t-il si vous enlevez les if dans l htaccess (et leur fermetures) ?

<IfModule mod_deflate.c>
	<IfModule mod_filter.c>

Si le serveur ne fait pas cette compression, il est possible de passer par php, d'une manière un peu détournée pas très propre

 

 

Bonjour,

 

Est-ce qu'il faut aussi enlever la fermeture de </module>, sur ces deux lignes ?

 

J'ai le même problème de défaut dans la compression gzip que cité sur ce post.

 

Je suis sous prestashop 1.4.4.0

 

En vous remerciant.

 

Cordialement.

Edited by shooping (see edit history)
Link to comment
Share on other sites

C’était un test, cela ne sert à rien de retirer les if. Ce n’est pas cela qui fait fonctionner la compressions, au contraire, je voulais retirer les if ( et oui aussi leur fermeture) pour provoquer une erreur 500.

 

Hors cela marche, pas d'erreur 500. Donc a mon avis il y a eu une erreur d'analyse par gtmetrix, car si je fais

curl -I http://vapolique.fr/themes/vapolique/cache/ff2ae296a9b7381624ff1e2b86daa700.js

on a

 

Content-Length: 183733
 

 curl -I --header "Accept-Encoding: gzip" http://vapolique.fr/themes/vapolique/cache/ff2ae296a9b7381624ff1e2b86daa700.js

Content-Length: 55268
 

Le serveur envoyait bien ce fichier compressé hier de cette même longueur.....

 

Cordialement

Link to comment
Share on other sites

Bonjour

 

Merci pour votre réponse.

 

Et concernant la mise en place des fichiers php dans le dossier qui ne parvient pas à être zippé ?

 

De mon côté, j'ai mis dans l'htaccess ce qui était indiqué plus haut, et j'ai quand même une différence :

 

environ 1 bonne demi-seconde de moins sur gmetrix.

 

Cordialement

Link to comment
Share on other sites

Re,

 

Si vous n'avez pas deflate et filter sur votre serveur, vous pouvez mettre ce .htaccess et ces .php dans le dossier /cache/ du theme, et il devrait vous compresser les éléments oui. Ce n'est pas une méthode des plus propres hein mais bon...

 

Cordialement

 

:)

 

A quoi est-ce qu'on voit qu'on les a ??? En fait la compression gzip reste partielle, et sur certains dossiers gmetrix me dit qu'ils ne le sont pas. Je reste à 99 % même avec la première méthode. CSS et JS ne sont minifiés qu'à 95 %, malgré les CCC d'activés, malgré aussi la nouvelle règle ajouté dans l'htaccess. 

 

Il me dit aussi que Keep Alive n'est activé qu'à 90 % ; mon hôte : nom@domaine ... ne le permet pas sur certains dossiers.

 

Un dossier cache dans le thème ? Ca existe sous presta 1.4 ? Je croyais qu'il fallait ajouter ces fichiers dans le dossier qui n'est pas compressé : module/blabla.....

 

Etag mal configuré, ça veut dire quoi et comment peut-on le régler ? 

 

Vous avez utilisé quel site pour faire le test qu'on voit en image ?

 

En vous remerciant.

 

Cordialement

Edited by shooping (see edit history)
Link to comment
Share on other sites

Moui bon je suis un peu blasé cf images:

 

 

perf-vapolique-24012014.png

 

perf-vapolique-240120141500.png

 

Allez savoir ce qui s'est passé en 3 heures....

 

Bah faut pas toujours s'en faire, c'est variable selon les heures et le nombre de connections en même temps !  Il y a aussi des serveurs plus long que d'autres comme celui de Dallas (il est pourri celui-là), je préfère celui des Pays-Bas. En plus ils nous proposent que des serveurs situés à perpette les oies, alors qu'on est hébergé en France. Dixit à défaut sur gmetrix, celui qui est basé en Angleterre est déjà plus près de nous, pour faire les tests. Et puis il y a aussi webpagetest, qui lui nous teste à partir de Paris, ouf !  :P

 

L'adresse de ma boutique est sur mon profil.  ;)

 

Cordialement.

Edited by shooping (see edit history)
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...