Puncte:1

Cloudflare memorează totul în cache

drapel ch
STF

avem un Drupal 8 cu regula de cache Cloudflare. În mod implicit avem întotdeauna moneda GBP, apoi am dezvoltat un modul care permite utilizatorilor să-și schimbe moneda cu un meniu derulant de subsol și o salvează în sesiunea utilizatorului.

Fără regula de cache Cloudflare, pagina web funcționează corect. Problema este dacă regula este activă, prima vizită pe web este stocată în cache cu moneda implicită, apoi dacă cineva încearcă să schimbe moneda în EUR, pagina web este reîncărcată și arată pagina stocată în cache cu moneda implicită și nu EUR .

Cache-ul Cloudflare este după adresă URL și păstrăm întotdeauna aceeași adresă URL pentru toate monedele.




Porniți scenarii Clodflare

Regula Cloudflare Cache Nivelul cache Cloudflare

Încheiați scenariile Clodflare




O soluție la care ne-am gândit este să adăugăm/forțăm moneda ca parametru al URL-ului.

https://www.amazon.com/ 
https://www.amazon.com/?currency=EUR&language=es_US 
https://www.amazon.com/?currency=EUR&language=en_US 
https://www.amazon.com/?currency=USD&language=es_US

Este posibil să forțați o solicitare pentru a avea întotdeauna un parametru? Există vreo modalitate de a face asta? Vă place un abonat la eveniment?

Vă mulțumesc tuturor.

Puncte:1
drapel cn

Da, puteți forța solicitarea să aibă întotdeauna parametri de interogare prin redirecționarea către un abonat la eveniment. Problema este, de unde știi ce monedă solicită utilizatorul dacă lipsește parametrul? Deci ceea ce doriți probabil este să procesați căile de ieșire pentru a avea deja parametrii corecti.

BTW întrebarea ta este puțin confuză. Prima parte vorbește despre utilizatorii autentificați. Apoi soluția nu este parametrii de interogare, ci configurarea CDN-ului pentru a ocoli memoria cache SESS.* cookie-uri (de care aveți nevoie oricum pentru a menține utilizatorul conectat). Vedea https://support.cloudflare.com/hc/en-us/articles/115002911927-Caching-HTML-with-Drupal

STF avatar
drapel ch
STF
Bună @4k4, mulțumesc pentru răspunsul rapid. Există întotdeauna un cookie de sesiune și acesta este necesar pentru oaspeți și utilizatorii conectați. Am încercat să configuram CDN cu cookie de sesiune (și, de asemenea, cookie-uri personalizate), dar nu putem folosi această soluție. Aceasta este întrebarea, dacă o solicitare nu are parametrul valută, aș putea forța să o adaug dacă există în sesiune?
STF avatar
drapel ch
STF
Dacă încerc să ajung pe site-ul www.example.com și dacă am EUR în sesiune, dar parametrul nu există, aș putea forța să schimb această solicitare în www.example.com?currency=EUR
4uk4 avatar
drapel cn
Puteți obține sesiunea într-un abonat de eveniment `$event->getRequest()->getSession()` și redirecționați dacă lipsește parametrul de interogare. A se vedea https://www.drupal.org/node/2013014. Dar nu sunt sigur că acest lucru funcționează când ați configurat CDN-ul pentru a stoca în cache traficul cu module cookie de sesiune. Și totuși s-ar putea să doriți să adăugați parametrii de interogare la link-urile de ieșire, în special cele din meniul drop-down valutar.
Puncte:0
drapel ch
STF

Cloudflare are o opțiune care este cheia cache personalizată. Aici pot configura memoria cache după numele cookie-ului și/sau numele și valoarea cookie-ului.

Salvăm moneda într-un cookie și Cloudflare este capabil să detecteze acel nume de cookie cu moneda specificată.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.