# Stylesheet/JS \> Cache-ID des Templates

**URL:** <https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380>\
**Category:** Shopware 6 (German)\
**Created:** [26. September 2023 um 10:16 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380 "2023-09-26T10:16:43Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mopsfidel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@Mopsfidel](https://forum.shopware.com/u/Mopsfidel)\
**Post date:** [26. September 2023 um 10:16 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/1 "2023-09-26T10:16:43Z")

</div>

Hallo.  
Im HTML-Header gibt es folgenden Aufruf:  
`<link rel="stylesheet" href="[https://domain.tld/theme/THEME-CACHE-ID/css/all.css](view-source:https://domain.tld/theme/THEME-CACHE-ID/css/all.css?1695690262)">`  
Die Frage ist: wo liegt diese CACHE-ID gespeichert? In der Datenbank finde ich sie nicht.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [26. September 2023 um 11:04 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/2 "2023-09-26T11:04:38Z")

</div>

Die CacheId kann in der .env angegeben werden. Ansonsten wird eine zufällige Id gebildet. Diese sollte sich aber in der Datenbank finden lassen, soviel ich weiß.

---

<div class="post-metadata">

**Author:** ![Mopsfidel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@Mopsfidel](https://forum.shopware.com/u/Mopsfidel)\
**Post date:** [26. September 2023 um 11:31 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/3 "2023-09-26T11:31:55Z")

</div>

Mir nutzt es nichts, die ID irgendwo festzulegen. Ich möchte die aktuell gültige ID auslesen. Und nein, in der Datenbank ist diese ID offensichtlich nicht zu finden.  
Sobald ich im _Custom Template Manager_ eine Änderung vornehme, wird ein neues Theme-Verzeichnis erstellt.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [26. September 2023 um 12:22 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/4 "2023-09-26T12:22:41Z")

</div>

> [@Mopsfidel](#):
>
> neues Theme-Verzeichnis erstellt

In deinem ersten Post hast du Cache geschrieben, nun Thema-Verzeichnis. Das sind zwei unterschiedliche Dinge.

---

<div class="post-metadata">

**Author:** ![Mopsfidel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@Mopsfidel](https://forum.shopware.com/u/Mopsfidel)\
**Post date:** [26. September 2023 um 12:43 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/5 "2023-09-26T12:43:19Z")

</div>

Die zu suchende ID stammt aus dem Verzeichnis  
/public/theme/  
Dort liegt nach meinen Verständnis eine Cache-Version des Templates. Siehe CSS-Aufruf vom HTML-Auszug im ersten Post.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [26. September 2023 um 14:36 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/6 "2023-09-26T14:36:41Z")

</div>

Da habe ich wohl beim überfliegen die Frage falsch verstanden. Entschuldige bitte.

Hier ist der entsprechende Codeblock… Zeile 107.

> <https://github.com/shopware/platform/blob/trunk/src/Storefront/Theme/ThemeCompiler.php#L54>

---

<div class="post-metadata">

**Author:** ![Mopsfidel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@Mopsfidel](https://forum.shopware.com/u/Mopsfidel)\
**Post date:** [26. September 2023 um 17:18 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/7 "2023-09-26T17:18:55Z")

</div>

Danke für den Hinweis. Aber wie ich das verstehe, erzeugt die Funktion eine neue ID beim Kompilieren des Themes.  
Die ‚all.css‘ liegt danach aber ja abrufbereit im „/public/theme/HASH-ID/“ Ordner. Und da weiß ich immer noch nicht, wie ich an den Hash-Wert komme. Original Theme-ID und Saleschannel-ID sind beide aus der Datenbank abrufbar. Aber diese ID der kompilierten CSS/JS finde ich nicht.

---

<div class="post-metadata">

**Author:** ![Max\_Shop](https://avatars.discourse-cdn.com/v4/letter/m/58f4c7/32.png) [@Max\_Shop](https://forum.shopware.com/u/Max_Shop)\
**Post date:** [26. September 2023 um 18:25 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/8 "2023-09-26T18:25:36Z")

</div>

Ich habe den Code nicht weiter gelesen.

Angenommen die ID wird nirgendwo abgelegt, was fast nicht sein kann, da sonst das HTML im Template falsch wäre… Falls entsprechender Cache gleichzeitig aktualisiert wird, dann

- kannst du einen eigenen Service schreiben, der die Ordner-Id ermittelt. Du weißt ja schließlich, wo der Ordner gespeichert ist

oder

- per Subscriber in den Service rein und die ID irgendwo speichern.

---

<div class="post-metadata">

**Author:** ![Mopsfidel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@Mopsfidel](https://forum.shopware.com/u/Mopsfidel)\
**Post date:** [27. September 2023 um 10:32 UTC](https://forum.shopware.com/t/stylesheet-js-cache-id-des-templates/101380/9 "2023-09-27T10:32:25Z")

</div>

Mittlerweile habe ich die Lösung.

```auto
class MD5ThemePathBuilder extends AbstractThemePathBuilder
{
    public function assemblePath(string $salesChannelId, string $themeId): string
    {
        return md5($themeId . $salesChannelId);
    }

```

Einen Zusatz gibt es noch. Sobald ein Theme nach der Installation bearbeitet wird, zb. durch den Custom-Template-Manager, kommt noch ein Seed hinzu (siehe Datenbank ‚system\_config.configuration\_key = storefront.themeSeed‘):  
**md5($themeId . $salesChannelId . $seed);**
