Mediendateien ändern ihren Ordnerpfad

Hallo zusammen,

wir nutzen eine eigene Entwicklungsumgebung mit Vagrant und SVN. Wir haben das development-Template in einem Ordner „shopware“ installiert, parallel dazu liegt ein src-Ordner, der den custom-Ordner mit Plugins sowie den media-Ordner enthält. Diese werden auf die entsprechenden Pendants im shopware-Ordner gesymlinkt. Nur der src-Ordner wird in SVN eingecheckt, nicht der Shopware-Ordner. Hintergrund: Shopware installiert sich dann bei jedem Kollegen automatisch auf dem Rechner, ohne dass wir den ganzen Code einchecken müssen.

Jetzt gibt es aber folgendes Problem: Bei jeder Installation ändern sich die Medien-Pfade! Sprich: Ich installiere den Shop und committe die Mediendateien, die mit dem Storefront-Theme abgelegt werden. Ein anderer Kollege checkt das Repository aus, installiert Shopware - und hat jetzt parallel zu den von mir committeten Medienordnern eigene Medien-Ordner - mit exakt denselben Bildern des Themes, aber eben andere Ordnerpfade.

Ich bin bisher nicht durchgestiegen, wo die Medienpfade überhaupt generiert werden. Was kann man da machen?

Viele Grüße,
Malte

1 „Gefällt mir“

Hat sich mittlerweile so ein bisschen erledigt, ich bin jetzt auf die Pathname Strategies gestoßen. Ich gebe jetzt in der .env SHOPWARE_CDN_STRATEGY_DEFAULT=filename an.

Soweit so gut, jetzt ist der Hash-Teil des Medienpfades schon mal immer identisch. ABER: Es wird immer noch ein Timestamp als Ordner eingefügt.

In der \Shopware\Core\Content\Media\Pathname\PathnameStrategy\AbstractPathNameStrategy::generatePathCacheBuster wird der Zeitstempel ausgelesen. „CacheBuster“, man will also verhindern, dass gecachte Bilder ausgespielt werden…

Dem beugen wir uns dann mal so… hatte erst mit dem Gedanken gespielt, eine eigene Pathname Strategy zu programmieren, die den Mediendateien einen Oberordner ihres „virtuellen“ Ordners voranstellt (product images, theme images, …), aber ich habe ein bisschen Sorge, dass das mit zukünftigen Änderungen nicht mehr kompatibel ist. Da die Medien ja „hart“ an die Datenbank geknüpft sind, kann man nicht mal eben alle Bilder austauschen, sondern müsste alle neu pflegen… das ist mir in Kundenprojekten zu riskant.