Jump to content

Erreur de cache des éléments dynamiques (panier, connexion)


Recommended Posts

Salut 

 

Je suis en 1.5.2 sans panier ajax et je rencontre le fameux probleme de panier vide...MAIS aucune des solutions du forum ne fonctionne chez moi car la cause du probleme est toute autre.

 

En fait, lorsque j'ajoute un produit au panier cela fonctionne. Par contre, si je retourne sur une page déja visité avant l'ajout au panier, le panier apparaît toujours comme vide.

 

Meme phénomène lorsqu'on se connecte sur le site. L'identification fonctionne parfaitement mais le statut ne se met pas à jour si je retourne sur une page visitée avant la connexion.

 

En clair, je sniffe une erreur de mise en cache des élements dynamiques car techniquement, tout fonctionne, c'est juste l'apparence qui n'est pas rechargée alors que la valeur a changé.

 

Du coup, un F5 règle généralement le souci mais je vois mal mes visiteurs s'accomoder à actualiser chaque page du site...

 

Plutôt que de bidouiller moi-meme le htaccess ou autres configuration de mon serveur, auriez-vous des recommandations pour désactiver la mise en cache de ces éléments dynamiques ?

Merci par avance :)m

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

Merci pour la réponse, voici :

http://urlz.fr/r7k

 

(je met un lien raccourci car j'ai remarqué que pages du forum s'indexent très vite dans google et je trouve ca moyen de taper le nom d'un site et de tomber sur un forum d'aide à la résolution de probleme ^^, quelqu'un saurait comment éviter ?) 

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

J'ai activé ajax. le probleme du panier n'apparait "presque plus" mais cela n'affecte en rien celui du statut de connexion :

 

je visite page 1

je me rend sur page 2 et je me connecte à mon compte,

je retourne sur page 1 et j'apparait non loggué, il faut que j'actualise la page pour apparaître connecté

 

pensant que je n'étais pas seul j'ai fais le tour de plusieurs sites presta en prod sous ma version et en ajax-cart off, le probleme ne se produit pas et j'apparait bien loggué meme en visitant d'autres pages.

 

j'avoue que je sèche totalement la

Link to comment
Share on other sites

Hello :)

 

Voici :

<IfModule mod_deflate.c>
    SetOutputFilter DEFLATE
    <IfModule mod_setenvif.c>
        # Netscape 4.x has some problems...
        BrowserMatch ^Mozilla/4 gzip-only-text/html
        
        # Netscape 4.06-4.08 have some more problems
        BrowserMatch ^Mozilla/4\.0[678] no-gzip
        
        # MSIE masquerades as Netscape, but it is fine
        # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
        
        # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
        # the above regex won't work. You can use the following
        # workaround to get the desired effect:
        BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
        
        # Don't compress images
        SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary
    </IfModule>
    
    <IfModule mod_headers.c>
        # Make sure proxies don't deliver the wrong content
        Header append Vary User-Agent env=!dont-vary
    </IfModule>
</IfModule>

# ~~start~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again
# .htaccess automaticaly generated by PrestaShop e-commerce open-source solution
# http://www.prestashop.com - http://www.prestashop.com/forums

<IfModule mod_rewrite.c>

# Disable Multiviews
Options -Multiviews

RewriteEngine on
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule . - [E=REWRITEBASE:/]
RewriteRule ^api/?(.*)$ %{ENV:REWRITEBASE}webservice/dispatcher.php?url=$1 [QSA,L]

# Images
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$1$2$3$4.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$1$2$3$4$5.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])([0-9])(\-[_a-zA-Z0-9-]*)?(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^c/([0-9]+)(\-[\.*_a-zA-Z0-9-]*)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2$3.jpg [L]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^myzone.decome.netdna-cdn.com$ [OR]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^c/([a-zA-Z-]+)(-[0-9]+)?/.+\.jpg$ %{ENV:REWRITEBASE}img/c/$1$2.jpg [L]

# Dispatcher
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^.*$ - [NC,L]
RewriteCond %{HTTP_HOST} ^www.mondomaine.fr$
RewriteRule ^.*$ %{ENV:REWRITEBASE}index.php [NC,L]
</IfModule>

#If rewrite mod isn't enabled
ErrorDocument 404 /index.php?controller=404

# ~~end~~ Do not remove this comment, Prestashop will keep automatically the code outside this comment when .htaccess will be generated again

 

 Bien sur, mondomaine remplace mon url ;)

merci d'avance

Link to comment
Share on other sites

Mince alors, c'est pas là...

Ça vient peut-être d'un htaccess parent ou de votre hébergeur ou encore d'un module. Je pense qu'il faut supprimer ce cache car s'il n'est pas bien gérer ça n'apportera que des soucis (stocks/disponibilité, ventes flash, changement de langue, de monnaie, etc.).

Link to comment
Share on other sites

Mince alors, c'est pas là...

Ça vient peut-être d'un htaccess parent ou de votre hébergeur ou encore d'un module. Je pense qu'il faut supprimer ce cache car s'il n'est pas bien gérer ça n'apportera que des soucis (stocks/disponibilité, ventes flash, changement de langue, de monnaie, etc.).

 

Hello :) 

 

Il n'y a pas (plus) de .htaccess parent.

 

Coté module, j'ai très peu de modules achetés et j'ai deja tenté de désactiver tout ceux non inclus dans presta 1.5, sans aucun changement.

 

Par contre en effet, j'ai identifié ce probleme après avoir changé de plan d'hebergement (passé d'un mutu à un VPS). Je ne sais si c'est lié mais je n'avais jamais vu ce probleme avant.

Le probleme c'est que mon hebergeur (P.H) n'est jamais très bavard quand il s'agit de m'aider dans la résolution de ce genre de bug, je vais quand meme tenter de voir avec eux.

 

Peu avant, j'ai également opté pour un cache externe (que tu vois dans le htaccess sous le nom "myzone.decome.netdna-cdn.com". J'ai déjà tenté de l'enlever de presta, vider mes caches de chrome et tester le site mais aucun changement.

Link to comment
Share on other sites

  • 2 weeks later...

J'ai avancé en reculant...

 

Sur mon VPS : 

WHM => Apache configuration => Include Editor => Pre VirtualHost Include => si je le vide et sauvegarde, je n'ai plus de probleme de cache. Le site est rapide et affiche bien les valeurs dynamiques.

probleme, cela a eu u nautre impact : impossible d'importer des images (produits catégories etc.) peut-etre d'autres problemes mais pas encore détecté.

 

Si je remet le contenu du fichier à sa place, j'importe des images mais je retrouve mon probleme de cache.

Voici le contenu du fichier Pre VirtualHost Include :

##### BEGIN Expire headers
<IfModule mod_expires.c>
 ExpiresActive On
 ExpiresDefault "access plus 7200 seconds"
 ExpiresByType image/jpg "access plus 2592000 seconds"
 ExpiresByType image/jpeg "access plus 2592000 seconds"
 ExpiresByType image/png "access plus 2592000 seconds"
 ExpiresByType image/gif "access plus 2592000 seconds"
 AddType image/x-icon .ico
 ExpiresByType image/ico "access plus 2592000 seconds"
 ExpiresByType image/icon "access plus 2592000 seconds"
 ExpiresByType image/x-icon "access plus 2592000 seconds"
 ExpiresByType text/css "access plus 2592000 seconds"
 ExpiresByType text/javascript "access plus 2592000 seconds"
 ExpiresByType application/javascript A259200
 ExpiresByType application/x-javascript "access plus 2592000 seconds"
 ExpiresByType application/x-shockwave-flash "access plus 2592000 seconds"
</IfModule>
##### END Expire headers

##### BEGIN Cache-Control Headers
<IfModule mod_headers.c>
 <FilesMatch "\\.(ico|jpe?g|png|gif|swf|gz|ttf|ico|woff)$">
 Header set Cache-Control "max-age=2592000, public"
 </FilesMatch>
 <FilesMatch "\\.(css)$">
 Header set Cache-Control "max-age=2592000, public"
 </FilesMatch>
 <FilesMatch "\\.(js)$">
 Header set Cache-Control "max-age=2592000, private"
 </FilesMatch>
<filesMatch "\\.(html|htm)$">
Header set Cache-Control "max-age=7200, public"
</filesMatch>
# Disable caching for scripts and other dynamic files
<FilesMatch "\.(pl|php|cgi|spl|scgi|fcgi)$">
Header unset Cache-Control
</FilesMatch>
</IfModule>
##### END Cache-Control Headers

##### BEGIN FCGI Vincent C.
<IfModule mod_fcgid.c>
	FcgidProcessLifeTime 820000000
	FcgidIOTimeout 82000000
	FcgidConnectTimeout 10000000000
	FcgidMaxRequestLen 10000000000000000
	FcgidBusyTimeout 360000
	FcgidBusyScanInterval 50000
</IfModule>

<Location />
	<IfModule mod_deflate.c>
	 	SetOutputFilter DEFLATE
		<IfModule mod_setenvif.c>
			# Netscape 4.x has some problems…
			BrowserMatch ^Mozilla/4 gzip-only-text/html
			
			# Netscape 4.06-4.08 have some more problems
			BrowserMatch ^Mozilla/4\.0[678] no-gzip
			
			# MSIE masquerades as Netscape, but it is fine
			# BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
			
			# NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48
			# the above regex won’t work. You can use the following
			# workaround to get the desired effect:
			BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html
			
			# Don’t compress images
			SetEnvIfNoCase Request_URI .(?:gif|jpe?g|jpg|png|flv|swf|xml|mp3)$ no-gzip dont-vary
		</IfModule>
	
		<IfModule mod_headers.c>
			# Make sure proxies don’t deliver the wrong content
			Header append Vary User-Agent env=!dont-vary
		</IfModule>
	</IfModule>
</Location>

Une idée de ce qui bloque ?

Link to comment
Share on other sites

Bon, en me bansant sur tes réponses j'testé et retesté en supprimant/remettant les lignes ayant un rapport avec 7200sec.

En supprimant ExpiresDefault "access plus 7200 seconds" cela a l'air de fonctionner pour le moment ^^ 

merci à toi pour les différentes pistes et le temps consacré ;)

  • Like 1
Link to comment
Share on other sites

Bon....Le probleme initial est réglé mais je ne peux pas laisser comme ca...

 

Chargement de la page sans ExpiresDefault "access plus 7200 seconds" :

8 à 9 secondes

 

Chargement de la page avec : 4 à 5 secondes

Apparement, de nombreux éléments ne sont plus mis en cache.

 

Aux vues des tests effectués au dessus- quelqu'un aurait une idée pour conserver une certaine rapidité de chargement tout en empêchant la mise en cache de ce qui est présent dans le header ?

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...