Kalte Bildtransformationen erzeugen ein leeres Hero-srcset (lokal, nicht live) #55
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Korrektur vorweg
Die erste Fassung dieses Issues behauptete, der Fehler treffe die Live-Seite. Das stimmt nicht. Auf Production ist alles in Ordnung, hier mit gesetztem WebP-Header gemessen am 2026-09-05:
Das tatsächliche Symptom
Solange die WebP-Transformationen eines Bildes noch nicht erzeugt sind, liefert
WebP()einen leeren String, und der landet ungefiltert imsrcset:Der Browser löst die leeren Einträge relativ auf und fordert Adressen wie
/blog/0.5xan, was einen 500er erzeugt. Dassrc-Attribut fällt sauber auf das Original zurück, das Bild ist also sichtbar.Reproduzierbar lokal mit einem frisch hochgeladenen Hero. Nach mehreren Seitenaufrufen füllt sich das
srcsetvon selbst, weil die Transformationen faul erzeugt werden. Auf Production tritt es deshalb praktisch nicht auf, dort sind die Varianten längst warm.Wo es herkommt
templates/_components/core/image.twigbaut dassrcsetaus dreiWebP()-Aufrufen. Die Funktion stammt aushuttchdev/craft-webpme,src/TwigExtension.php, und gibt$image->getUrl($params)durch. Craft liefert für eine noch nicht erzeugte Transformationnull. Es fehlt der Fallback.Warum es trotzdem einen Fix wert ist
Direkt nach einem Deploy mit neuen Bildern bekommen die ersten Besucher das unskalierte Original und lösen nebenbei 500er aus. Bei einem 7-MB-Hero ist das der Unterschied zwischen einer schnellen und einer sehr langsamen Seite, genau in dem Moment, in dem ein neuer Artikel Aufmerksamkeit bekommt.
Akzeptanzkriterien
null, steht imsrcsetdie Original-URL statt eines leeren Strings. Dassrcsetist damit immer wohlgeformt./blog/0.5x.🤖 Generated with Claude Code
https://claude.ai/code/session_014T2Tn3SA9bfzTDihJN269H
Hero-srcset ist leer, sobald der Browser WebP akzeptiertto Kalte Bildtransformationen erzeugen ein leeres Hero-srcset (lokal, nicht live)