contao / core-bundle

[READ-ONLY] Contao Core Bundle
GNU Lesser General Public License v3.0
123 stars 58 forks source link

redundante Dateien im Bildercache #1669

Closed verkruemelt closed 6 years ago

verkruemelt commented 6 years ago

Wenn das Gleiche Bild bspw. in mehreren Nachrichten verwendet wird, wird jedes mal ein eigenes Bild im Cache erzeugt. Wäre es nicht sinnvoller, das Selbe gecachte Bild zu verwenden? Auch wenn der interne Verweise {{file::....}} verwendet wird.

assets/images/0/0_clipping-16ce9220.svg
assets/images/0/0_clipping-65bea6bd.svg
assets/images/0/0_clipping-7ebcd743.svg
assets/images/2/0_clipping-d0dfc7fd.svg
assets/images/5/0_clipping-3b5a0a34.svg
assets/images/6/0_clipping-89ad7908.svg
assets/images/8/0_clipping-4260060a.svg
assets/images/8/0_clipping-f9fe4612.svg
assets/images/b/0_clipping-be83287a.svg
assets/images/b/0_clipping-eb57d351.svg
assets/images/b/0_clipping-f519c11d.svg
assets/images/c/0_clipping-9fe19f39.svg

contao 4.4.20 php 7.2.7

fritzmg commented 6 years ago

Verschiedene Versionen von einem Bild werden dann erzeugt, wenn verschiedene Ausgabegrößen verwendet werden. Ist der Inhalt jeder dieser .svg Dateien exakt gleich? Wenn ja, dann gibt es evt. einen Bug. Für die exakt selbe Ausgabegröße sollten nicht mehrere Dateien erzeugt werden.

verkruemelt commented 6 years ago

Ja, der Inhalt ist gleich, die Größe ist auch immer gleich, ich hatte nur 2 Mal "an Rahmen anpassen" und sonst "Proportional" verwendet. Ich habe die Einstellungen vereinheitlicht, die Bilder mit "0_clipping*" entfernt und die Artikel neu aufgerufen. Jetzt wird nur ein Vorschaubild erzeugt.

Edit: Es wird doch wieder ein 2. Bild erzeugt. Ich habe gerade nochmal 3 Artikel angeschaut und nun ist im Cache Verzeichnis wieder ein 2. Vorschaubild. Liegt es eventuell daran, dass die Bilder als Link verwendet werden? Die Artikel enthalten jeweils ein Inhaltselement. Einen Hyperlink, dieser verweist auf ein PDF-Dokument (ein Artikel jeweils für ein Dokument) und dafür wird ein Bildlink erstellt (immer mit der gleichen SVG-Datei und den gleichen Einstellungen).

fritzmg commented 6 years ago

Liegt es eventuell daran, dass die Bilder als Link verwendet werden?

Sollte egal sein, da das an einer zentralen Stelle erzeugt wird, unabhängig davon, wer die jeweilige Bildgröße requested.

Der Hash der Datei setzt sich so zusammen: https://github.com/contao/core-bundle/blob/4.5.12/src/Resources/contao/library/Contao/Image.php#L379-L403

Wenn sich also etwas an

ändert, wird ein neues Bild erzeugt.

asaage commented 6 years ago

Es kann auch passieren, wenn man bei den Bildgrößen verschiedene Pixeldichten im Einsatz hat (was für SVG's nicht so wirklich Sinn macht). https://github.com/contao/image/issues/46

edit: Was in diesem Fall rauskommt sind in der Tat unterschiedliche Dateien (width & height Attribute werden hinzugefügt bzw. geändert)

fritzmg commented 6 years ago

Der Fall wäre dann mit dem Unterschied von

abgedeckt. Denn ein 2x Bild hat natürlich eine andere Größe als das Default 1x Bild.

ausi commented 6 years ago

Seite Contao 4.3 werden die tatsächlichen Zielkoordinaten für die Berechnung des Hashes verwendet. D.h. es kann nicht mehr vorkommen dass das exakt selbe Bild mehrfach erzeugt wird, sofern das Quellbild gleich bleibt: https://github.com/contao/image/blob/7460eee279c71eb99b545f3d60ce889a2d1f9b29/src/Resizer.php#L172-L190

Sollte das doch der Fall sein, poste bitte die Links zu den generierten Dateien.

verkruemelt commented 6 years ago

Die Datei liegt unter files/intranet/news_clipping/0_clipping.svg und wird jeweils mit den exakt gleichen Einstellungen genutzt. Es wird immer 0_clipping-d0dfc7fd.svg in den Nachrichten verwendet. Ich habe die *clipping*-Dateien nochmal alle aus dem Cache entfernt und mir die Nachrichten anzeigen lassen. Bis dahin wurde nur die eine Datei (-d0dfc7fd) erzeugt. Danach habe ich in dem Inhaltselement (Hyperlink) etwas geändert. Ich habe die Überschrift von h3 auf h1 geändert, obwohl diese leer ist, gespeichert, Seite neu aufgerufen und der Bildpfad auf der Seite ist der gleiche. Aber im Cache-Verzeichnis ist wieder ein 2. Bild da. ... Das kommt vom contao-Backend... Aber wo kommen dann die anderen Versionen her?

fritzmg commented 6 years ago

@verkruemelt

Sollte das doch der Fall sein, poste bitte die Links zu den generierten Dateien.