Problème de cache

Bonjour,

Hier j’ai décidé de refaire intégralement le design de mon site et pour ce faire je travail sur un sous domaine test (oui j’étais très inspiré je sais :slight_smile: ).

Le cache de Cloudflare est actif depuis des années sur mon site et j’ai voulu le désactiver UNIQUEMENT pour mon sous domaine de test histoire de pas attendre 3 plombes pour enfin voir mon changement.

Sur mon compte Cloudflare, je suis donc aller dans les paramètres de mon domaine > Caching > Cache Rules et j’ai mis ça:

Le problème étant que le cache fonctionne toujours, car j’ai beau vider le cache du navigateur ou en navigation privée ou même tester sur un autre navigateur, il faut encore que j’attende.

J’en déduis donc que soit je l’ai mal configuré la chose, soit j’ai absolument pas fait au bon endroit.

Pour info je suis hébergé chez LWS, je précise au cas ou il y aurait un soucis de compatibilité entre LWS et Cloudflare.

Quelqu’un pourrais m’éclairer svp ?

Petite précision, je suis avec le plan gratuit chez Cloudflare.

Bonjour,
Est-ce que vous avez purgé le cache Cloudflare après avoir créé la nouvelle règle ?

@nicgayerie
Bonjour,
Oui c’est la première chose que j’ai faite et que je dois refaire trop souvent à mon goût :slight_smile: .

Est-ce que vous avez un exemple d’URL qui est cachée par Cloudflare alors qu’elle ne devrait pas ?

Bonjour,

Est ce que temporairement le mode “developement” pourrait etre utile?

Votre regle de caching semble correcte. Difficile d’en etre sure a 100% sans entrer dans le détail (par exemple une requete curl et son résultat).
Quelques pistes :

  • pensez bien a distinguer le “browser cache” (celui du navigateur), du “edge cache” (celui de Cloudflare), de l “origin cache” (celui qui pourrait être en oeuvre chez votre hébergeur)
  • dans la devtool de votre navigateur, onglet “network”, cochez “disable cache”
  • dans la devtool de votre navigateur, onglet “network”, cliquez sur la ressource qui n’est pas fraiche et consultez le header de réponse CF-Cache-Status (qui pourrait avoir comme valeur HIT, MISS, DYNAMIC, …). cf. Default Cache Behavior · Cloudflare Cache (CDN) docs
  • utiliser curl en ligne de commande pour debuguer les problemes de cache
  • par défaut la query string fait partie de la clé de cache = en ajoutant un parametre aléatoire (“?tutu=tata”) cvous invalidez le cache
  • vous pourriez essayer l’extension Chrome nommée Dr.Flare

Dans le meilleur des mondes :

  • visez “CDN Cache Control” (ou Origin Cache Control)
    CDN-Cache-Control · Cloudflare Cache (CDN) docs
  • versionnez vos assets (js, css, images) pour ne pas avoir a vider le cache.
    Par exemple:
    /main.css
    devient /main.css?ts=123456789
    ou encore /main.css?version=13
    ou encore /main-123456789.css

@nicgayerie
Oui voici l’URL où je fais mes tests: https://test.breat.fr/fr/ actuellement et où ma règle sur Cloudflare est sensée être appliquée si je l’ai faite correctement.

En effet j’ai songé dans un premier temps à activer le mode développement, mais ça me gène un peu de le mettre sur TOUT le site alors que c’est uniquement pour un sous-domaine de test et qui normalement n’est pas pour le public.

Du coup en attendant j’utilise “Cloudflare Purge Plugin” https://chrome.google.com/webstore/detail/cloudflare-purge-plugin/nbpecchpcfacahhekolpaofpmogkmmok comme extension de navigateur histoire de m’éviter d’aller sur le site pour le vider à chaque modification.

De plus, il me semblait peut-être à tort que le HTML n’était pas mis en cache or moi il y est.
Peut-être est-ce car mes pages sont en format PHP que j’utilise très peu sauf pour les include afin de me faciliter la gestion ?

Désolé le forum refuse que je mette des liens donc j’ai rusé

$ curl -svo /dev/null <URL> 2>&1 | grep '< '
< HTTP/2 200
< date: Mon, 26 Jun 2023 14:49:42 GMT
< content-type: text/html; charset=UTF-8
< vary: Accept-Encoding
< x-cache-status: HIT
< x-cache-key: <URL>
< cf-cache-status: DYNAMIC
< report-to: {"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=RhVq8MtSGr2oDTbr13UZKemFMaRAi%2FKy4eFAZeSmztjCKphUFf03RuyXht0CVGV0wlRtyUIuLV8J9mnreAE89AATBoi4cOxs07LTtQ8AT7%2F8NvPEKIIHmCh1Rzu1SxZI"}],"group":"cf-nel","max_age":604800}
< nel: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
< strict-transport-security: max-age=0; includeSubDomains; preload
< x-content-type-options: nosniff
< server: cloudflare
< cf-ray: 7dd642283ef999a8-CDG
< alt-svc: h3=":443"; ma=86400
< cf-team: 1999c7ad19000099a868aa7400000001

Cette URL n’est pas cachée du côté de Cloudflare:

< cf-cache-status: DYNAMIC

Le HIT provient d’un autre cache…

Merci au moins je sais que le problème ne vient pas de Cloudflare et comme ma règle du cache n’a pas été incriminée j’en déduis qu’elle est correcte.

Ok, du coup probablement mon hébergeur, je vais me pencher sur le sujet.

1 Like