Antete de cache pentru fonturi și imaginile statice, apoi Respect existing headers
Patru categorii de fișiere ies din nginx fără niciun antet de cache și primesc patru ore de la Cloudflare, ca valoare implicită. Atâta timp cât e așa, setarea „Browser Cache TTL" a zonei nu poate fi trecută pe „Respect existing headers" fără să înrăutățească lucrurile — vezi nota din #21 (closed).
Ce am găsit
Măsurat pe producție, ce ajunge la vizitator:
/fonts/SuisseIntl-Regular-WebS.woff2 max-age=14400 <- de la Cloudflare, nu de la noi
/products/2up-normatec.webp max-age=14400 <- idem
/og-default.jpg max-age=14400 <- idem
/robots.txt max-age=14400 <- idem
/favicon.svg?v=2 max-age=14400 <- noi trimitem `no-cache`, e ridicat la 4h
frontend/nginx.conf are add_header Cache-Control doar pentru trei locuri: /assets/ (un an, immutable), = /favicon.svg (no-cache) și = /config.js (no-store). Restul nu primește nimic.
Fonturile și imaginile din frontend/public sunt în practică imuabile: se schimbă doar printr-un deploy, iar când se schimbă li se schimbă și conținutul la aceeași adresă — deci au nevoie de o valoare aleasă, nu de tăcere.
De făcut
-
Antet explicit pentru /fonts/— fișierele nu se schimbă niciodată sub același nume, deci pot primi un an cuimmutable -
Antet explicit pentru imaginile statice din public(/products/,/nav/,/therapy/,/icons/și restul): o valoare aleasă conștient, nu implicitul Cloudflare -
robots.txtșisitemap.xml: o valoare scurtă, dar a noastră -
După ce toate au antet propriu, treci Browser Cache TTL al zonei pe „Respect existing headers", ca no-cache-ul faviconului să nu mai fie ridicat la patru ore
Criteriu de acceptare
curl -sI pe câte un fișier din fiecare categorie arată un antet Cache-Control trimis de noi, nu implicitul de patru ore; faviconul revalidează în loc să stea patru ore; nicio categorie nu rămâne fără antet după ce setarea zonei e schimbată.
Depinde de
Ultimul punct e o setare de zonă în panoul Cloudflare, deci cere accesul lui Vitalie. Primele trei se fac din repo.