Puncte:1

Vizualizarea nu se va actualiza decât dacă memoria cache este ștearsă

drapel co

Într-un site Drupal 9 am construit o vizualizare care afișează conținut specific pentru fiecare zi a lunii (filtrarea după un câmp de dată).

Vizualizarea arată conținutul corect pentru utilizatorul administrator, dar nu pentru altcineva decât dacă memoria cache este golită.

Am încercat să dezactivez memorarea în cache pentru acea vizualizare, să dezactivez memorarea în cache a vizualizării și să dezactivez toate stocarea în cache de pe site, dar nimic din toate acestea nu face nicio diferență.

Singura modalitate de a actualiza corect conținutul este să faceți clic pe butonul „Ștergeți toate cache-urile” în fiecare zi.

Asta nu are niciun sens. (Am creat acest tip de vizualizare în trecut în Drupal 7 și nu am avut o astfel de problemă.)

Orice ajutor ar fi foarte apreciat.

drapel cn
Aveți ceva de genul Varnish, Redis, un fel de CDN etc.? Uneori există un alt cache acolo undeva.
drapel in
Depinde și de configurația acestei vederi. Această vizualizare extrage date dintr-un index API de căutare? Această vedere este redată într-un context anonim? Datele sunt redate de vizualizare calculate din ceva sau utilizează o logică personalizată pentru a le prelua? Există șabloane de crenguță care manipulează redarea datelor vizualizării sau vizualizarea în sine?
drapel co
Singurul CDN de care știu este pentru un formular web în altă parte a site-ului (deși nu sunt sigur că folosește un CDN, dar Drupal provoacă o mulțime de erori despre CDN-uri dacă nu îl suprimați).
drapel co
@Joseph Vizualizarea este destul de simplă, Titlu, Corp, Data. Orice conținut este adăugat din timp și vizualizarea afișează o intrare (singura intrare pentru ziua respectivă) folosind un filtru în câmpul Data de „Este egal cu” „acum” (care a funcționat întotdeauna cu Drupal 7).
Puncte:2
drapel cn

@Patrick Kenny, există și unul încorporat. Pentru a dezactiva acest cache pentru utilizatorii anonimi, dezinstalați modulul Cache internă a paginii. Apoi, tot traficul va fi deservit de Dynamic Page Cache, care poate fi controlat de metadatele cache pe care le configurați în vizualizare.

O altă modalitate ar fi să invalidezi eticheta cache View într-un job cron.Cache-ul intern al paginii are avantajul față de cache-urile externe precum Varnish sau CDN-uri că nu aveți nevoie de solicitări PURGE, puteți invalida direct eticheta cache:

\Drupal\Core\Cache\Cache::invalidateTags(['config:views.view.my_view']);
sonfd avatar
drapel in
Puteți, de asemenea, să invalidați cu [_cache_tags.invalidator_](https://api.drupal.org/api/drupal/core%21lib%21Drupal%21Core%21Cache%21CacheTagsInvalidator.php/function/CacheTagsInvalidator%3A%3AinvalidateTag/8.2.s x) serviciu (ceea ce `Cache::invalidateTags()` apelează intern) cum ar fi: `\Drupal::service('cache_tags.invalidator') ->invalidateTags($tags);`
drapel co
Apreciez foarte mult toate aceste răspunsuri, dar toate par nebun de tehnice și complexe pentru ceva care ar trebui să fie o funcționalitate relativ de bază (și a funcționat în trecut, foarte simplu, cu Drupal 7).
4uk4 avatar
drapel cn
Doar dezinstalați modulul. Consultați pagina modulului: „Site-urile web care servesc utilizatorilor anonimi conținut dinamic vor dori să dezactiveze modulul Internal Page Cache.”. Cu toate acestea, cazul tău nu este atât de dinamic, se schimbă doar o dată pe zi. Deci ați putea alege a doua opțiune și puteți păstra câștigul de performanță al acestui modul.

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.