# Wie erhalte ich den internen Pfad einer Mediendatei in Twig?

**URL:** <https://forum.shopware.com/t/wie-erhalte-ich-den-internen-pfad-einer-mediendatei-in-twig/88908>\
**Category:** Programmierung\
**Tags:** programming, themes--design\
**Created:** [6. Juli 2021 um 14:18 UTC](https://forum.shopware.com/t/wie-erhalte-ich-den-internen-pfad-einer-mediendatei-in-twig/88908 "2021-07-06T14:18:10Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Arbinath](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/arbinath/32/13043_2.png) [@Arbinath](https://forum.shopware.com/u/Arbinath)\
**Post date:** [6. Juli 2021 um 14:18 UTC](https://forum.shopware.com/t/wie-erhalte-ich-den-internen-pfad-einer-mediendatei-in-twig/88908/1 "2021-07-06T14:18:10Z")

</div>

Hallo zusammen,

das Ziel, das ich versuche zu erreichen, ist, die Farbe von Kategorie-Mediendateien im SVG-Format bei Maus-Hover zu ändern.

**Kurze Einführung:**  
Alle Mediendateien, die mit `{% sw_thumbnails ... %}` geladen werden, werden in der twig-Vorlage mit einem `img`-Tag gerendert. Wenn die Mediendatei Thumbnails hat, dann enthält der `img`-Tag ein `srcset` mit allen Thumbnail-Pfaden.  
Wenn die Mediendatei eine SVG-Datei ist, sind keine Thumbnails vorhanden, daher wird nur ein einfaches `img`-Tag gerendert.

Soweit ich weiß, ist es für die Änderung der `fill` Farbe eines SVGs bei „mouse hover“ notwendig, dass die Rohdaten der SVG-Datei im DOM vorhanden sind, also nicht in einem `img`-Tag eingeschlossen sind.

Shopware rendert seine Standard-Icons bereits auf die oben beschriebene Weise und verwendet dazu eine Twig-Methode namens `source()`. Der folgende Code fügt im DOM die Rohdaten eines Icons ein, wenn ein Pfad zur SVG-Datei angegeben wird:

**/src/vendor/shopware/storefront/Resources/views/storefront/utilities/icon.html.twig**

```auto
        <span
            class="icon icon-{{ name }}{% for entry in styles %}{% if entry != "" %} icon-{{ entry }}{% endif %}{% endfor %}">
                {{ source('@' ~ namespace ~ '/../app/storefront/dist/assets/icon/'~ pack ~'/'~ name ~'.svg', ignore_missing = true) }}
        </span>

```

**Jetzt kommt die Kernfrage:**  
Wie kann ich den richtigen Pfad zu einer Mediendatei herausfinden? Was sollte der `namespace` und der Pfad zur Datei sein, damit die Twig-Methode `source()` die SVG-Datei finden, die Raw-Daten holen und in das DOM einbinden kann?

**Hier ein Beispiel:**

```auto
{{ category.media.url }}
{# Ausgabe: 'media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' #}

```

**Was ich bereits versucht habe:**

```auto
{% setze Pfad = '@Storefront/media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' %}
{% set path = '@Storefront/public/media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' %}
{% set path = '@default/media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' %}
{% set path = 'media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' %}
{% set path = 'public/media/05/59/4f/1625499059/kategorie_Apple-Mac.svg' %}
{{ source(path) }}

```

Und viele andere Optionen habe ich ausprobiert, ohne Erfolg zu haben.  
**Der Twig-Fehler ist immer von der gleichen Art:**

```auto
# Template "/media/5d/51/e6/1625498977/kategorie_Aktion.svg" is not defined.

```

Ich wäre wirklich dankbar für jeden hilfreichen Tipp, der mich in die richtige Richtung lenkt.

Mit freundlichen Grüßen
