Fonts vom Default Theme verursachen Fehler in Konsole ?!

Moin,

das Problem ist das folgende:
Bestimmte Schriftarten werden scheinbar via http geladen, was zu Fehlern führt wenn die Seite via https geladen wird. Stichwort: mixed content.

Jemand eine Idee wie man dem vorbeugen kann ? Der Font wird prinzipiell nicht gebraucht.
Also entweder Font via https laden oder gar nicht laden (was besser wäre).

Shopware Version 6.3.0.1

  • ist dein Sales Channel Domain https?

https://symfony.com/doc/current/deployment/proxies.html ?

Haben das gleiche Problem auch mit dem setzten der proxies besteht das Problem weiterhin … 

  • ist dein Sales Channel Domain https?

Jap.

Ich hab mir das Problem mal etwas genauer angeguckt (v6.3.0.1 - Production-Template):

  1. Ich habe in der Administration bei allen meinem Sales-Channels nicht eine einzige http: Domäne/Url.
  2. Die http: Domain die dort angegeben ist und die Probleme verursacht ist die Domain die automatisch vorhanden war nachdem ich das System installiert habe. (diese hab ich direkt nach der installation entfernt)
  3. Ein weiterer Fehler: Bei den anderen beiden Sales-Channels - welche jeweils eine komplett andere Domain haben - versucht das System trotzdem die Fonts mit der vom ersten Sales-Channel nicht vorhandenen/konfigurierten http:Url zu laden.

Sonstiges:

Man kann eine https: Ausgabe zum Testen erzeugen indem man in der Datei ‘vendor/shopware/storefront/Theme/ThemeCompiler.php’ nach Zeile 290 folgendene Zeile einfügt:

$variables[sprintf('sw-asset-%s-url', $key)] = str_replace('http:', 'https:', $variables[sprintf('sw-asset-%s-url', $key)]);

Danach ist der Fehler zumindest in dem ersten von drei Sales-Channels weg! 

​Bei ‘bin/console theme:compile’ wird auch folgende Datei erzeugt: var/theme-variables.scss   (Ich vermute der Fehler ist das in dieser Datei die Urls Absolut und nicht relativ drin stehen).

Wie dem auch sei ich habe keine Zeit mir das jetzt weiter anzugucken. Aber vielleicht hilft das anderen dabei eine Lösung zu entwickeln

Was mir auch noch aufgefallen ist: Das System nimmt einfach den Wert aus APP_URL der in der .env Datei steht (für alle Verkaufskänale unabhängig von der tatsächlich hinterlegten Domains & Urls). Als Quick-Fix kann man dort einfach http durch https ersetzen (das ist aber auch keine Lösung für Multishop Systeme)

@Shyim‍

Mit 6.3 wurden folgende SCSS Variablen eingeführt. Das verursacht die Probleme.

$sw-asset-public-url
$sw-asset-theme-url
$sw-asset-asset-url
$sw-asset-sitemap-url

Die URl entsteht durch

  • entweder konfigurierte URL in der shopware.yaml

  • den aktuellen Browser Request

 - APP_URL

Das ist kein Bug, sondern falsche Konfiguration im System

1 Like

Ja, muss das leider auch bestätigen @Shyim‍. Bei uns stellt es sich so dar, dass wir mehrere Sales-Channel mit unterschiedlichen Domains eingerichtet haben. Leider wird als Domain die verwendet, die wir im Menü ( Einstellungen > Shopware Account ) als Lizenzdomain eingstellt haben. Das führt bei den anderen Domains dazu, dass folgender Fehler angezeigt wird:

Quellübergreifende (Cross-Origin) Anfrage blockiert: Die Gleiche-Quelle-Regel verbietet das Lesen der externen Ressource auf https://www.sample-domain.de/bundles/storefront/assets/font/Inter-Bold.woff2. (Grund: CORS-Kopfzeile 'Access-Control-Allow-Origin' fehlt).

Falls sich das über die Konfiguration lösen lässt, wäre das schön, habe bisher aber nichts gefunden. Hat jemand eine Idee, wie man das fixen kann?

@Shyim‍ Ich habe mir jetzt mal die Mühe gemacht und v6.2.3 nochmal mit v6.3.0.2 verglichen.

Das Ergebnis kann ich dir anhand von folgenden Demo-Installation hoffentlich etwas besser verbildlichen:

(1) Shopware 6.1 Demo auf Hostingwerft.de

  • Shopware v6.3.0.x

(2) https://www.splendid-internet.de/shopware-6-demoshop

  • Shopware v6.2.2

 

 

 

Die o.g. Variablen (wie z.B. “$sw-asset-theme-url”) wurden mit Shopware v6.3 eingeführt und der Prozess rund um die Erzeugung & Einbindung ist nicht Multi-Store kompatibel. Dieser Prozess zieht sich immer den Wert aus der .env. Wenn ich den Wert in der .env z.B. auf test-123.com ändere dann wird in jedem Verkaufskanal versucht die Fonts von test-123.com zu laden. Die tatsächlichen Urls die in der Administration konfiguriert sind werden ignoriert. Das die Domain ab 6.3 im kompilierten Quelltext und den SCSS/CSS Dateien steht liegt eben an der Variable “$sw-asset-theme-url”.

Ist das ein Bug oder mache ich etwas falsch?! Ansonsten funktionieren die Verkaufskanäle wie erwartet.

Hallo. Denke auch das dies ein Bug ist.
In der all.css wird im Saleschannel des „Subshop“ auf die Fonts im „Hauptshop“ verlinkt.

Abhilfe schafft temporär ein Eintrag in die htaccess:

 

        Header set Access-Control-Allow-Origin "*"

Hoffe das hilft.

Gruß thom

 

EDIT: kein Plan was der Editor hier für nen Quatch macht mit meinem Snippet?!

1 Like

Mitllerweile wurde der Bug von einem Shopware Mitarbeiter gefunden & ein Ticket erstellt: Shopware Issuetracker

1 Like

@MaxW‍ du hast den Bug gefunden, ist doch schön für dich.

Menschen machen Fehler, was muss man da noch so gehässig nachtreten?

@MrAle‍ 

  1. Ich hab den Fehler nicht gefunden!
  2. Das hat nichts mit gehässig zu tun. Shopware 6 ist voller Bugs was soweit auch nachvollziehbar ist. Wenn allerdings Mitarbeiter auf Hinweise aus der Community nicht reagieren oder sogar Mitglieder in die Irre führen find ich das einfach nicht mehr ok. Wenn das die Fehlerkultur bei Shopware ist, ist es kein Wunder das soviele Probleme in dem System sind. Das ist ja nicht nur diese Diskussion ich lese bei vielen anderen Diskussionen auch mit. Wenn ich sehe was einige Shopware Mitarbeiter insbesondere zwei bis drei Personen (ja es sind immer wieder die Gleichen) schreiben, dann frage ich mich ob die Überhaupt helfen wollen. Und wenn sie es nicht wollen wäre es vielleicht besser gar nichts zu schreiben als irgendwelche irreführenden Aussagen zu tätigen die gleichzeitig noch einen leicht herablassenden Unterton haben.
3 Likes

Jemand eine Idee, wie sich das temporär lösen lässt, ohne jetzt durch alle SCSS Variablen zu gehen? …
Habe das gleiche Problem in einem Projekt …

Schöne Grüße,
Niklas

Hi @TeichDatensysteme,
hilft Dir der Hinweis von thom nicht? Bei mir hat es jedenfalls für den Moment Abhilfe geschafft.

@thom schrieb:

Hallo. Denke auch das dies ein Bug ist.
In der all.css wird im Saleschannel des „Subshop“ auf die Fonts im „Hauptshop“ verlinkt.

Abhilfe schafft temporär ein Eintrag in die htaccess:

 

Header set Access-Control-Allow-Origin „*“

Hoffe das hilft.

Gruß thom

 

EDIT: kein Plan was der Editor hier für nen Quatch macht mit meinem Snippet?!

image

Macht bei mir keinen Unterschied.
Ich habe aber auch keine Subshops oder so, daher wird denke ich das Allow-Origin keinen Unterschied machen.
Bei mir meckert die HTTPS Verbindung, weil die Fonts über HTTP geladen werden möchten.
Selbst ein https force via htaccess ändert nichts an der Sache …

Seltsam, dass bei Dir die Fonts per HTTP kommen. Die wurden bei mir jedenfalls per HTTPS eingebunden, nur eben von der falschen Domain :wink: Gibt es den Fall schon als Ticket? Dann könnten wir mal alle dafür voten: https://issues.shopware.com

 

@gomeZ‍ Wenn das System über HTTP installiert wurde, dann steht in der Variable “APP_URL”  in der “.env” Datei die Domain auch mit HTTP.

@TeichDatensysteme‍ Wenn du ein eigenes Theme hast kannst du den Fehler recht einfach beheben. Bei mir erben die Child Themes von einem Parent Theme dementsprechend habe ich die Änderungen nur im Parent Theme vorgenommen.

  • Dateipfad: “custom/plugins/DEIN_THEME/src/Resources/app/storefront/src/scss/overrides.scss”

Da habe ich bei mir folgendes ergänzt:

// Fix für das Font Problem (https://forum.shopware.com/discussion/70874)
// - Ticket: https://issues.shopware.com/issues/NEXT-10560
$sw-asset-theme-url: '';

Dann nochmal die Themes refreshen, kompilieren, Cache löschen etc. Danach fliegt eben die Domain aus dem Quelltext & aus den kompilierten CSS Dateien und es verhält sich wieder wie bei v6.2.x (siehe: https://forum.shopware.com/discussion/comment/278110/#Comment_278110).  

2 Likes

@MaxW‍ Ahhh klar, richtig! Sehr gute Idee mit der sw-asset-theme-url, hat geklappt. Danke Dir!

1 Like

@MaxW‍ kannst Du mir villeicht weiterhelfen?

Habe hier auch das Problem (Shopware 6.3.4.1).

Leider ist die Anpassung bei mir ohne Ergebnis. Bin neu bei Shopware. Muss ich in der overrides.scss auch einen Befehl wie sw_extends einfügen?

Zudem bekomme ich in den DevTools noch 404 Meldungen für /css/~scss/variables und /css/~scss/layout/_scroll-up

Ich vermute zudem, dass dies unsere Seite auch von der Ladezeit her stark negativ beeinflusst.

Kann mir hier jemand weiterhelfen?

Vielen Dank im Voraus!
Gruß Daniel

@DanielZiehfreund‍ So wie das oben beschrieben wird geht das sicher … hab das in einer 6.3.4.1 exakt so lösen können.
Achte nach der Anpassung darauf, das Theme zu kompilieren (bin/console theme:compile oder das Theme im Admin speichern).
Danach den Cache leeren (bin/console cache:clear oder im Admin), im besten Fall auch deinen Browser Cache.

1 Like