Ich nutze das production-template und zum Kompilieren den bin/watch-storefront Befehl.
Auf dem Storefront proxy server habe ich dann leider keinen Zugriff auf den Profiler mehr…
Habe ich irgendwas falsch konfiguriert?
Access to XMLHttpRequest at 'http://192.168.33.10/_wdt/4611f7' from origin 'http://192.168.33.10:9998' has been blocked by CORS policy: Request header field x-requested-with is not allowed by Access-Control-Allow-Headers in preflight response.
ich hatte das selbe Problem und konnte es nun lösen.
Wir haben ein seltenes Setup, aber vom Prinzip her stellt das kein Problem dar.
Reverse-Proxy: Pound
Webserver: Apache
Der HOT-RELOADING-Modus geht ja über einen speziellen Port (9998). Über diesen Port lauscht ja der Nodejs-Webpack-Server und leitet die Anfragen dann ggf. weiter an den Apache (bei mir) oder nginx, etc.
Dabei kann es sein, dass der originäre Client-Port „verloren“ geht und Shopware, bzw. Symfony gibt dir die Url „http ://192.168.33.10/_wdt/4611f7“ zurück (also quasi Port 80), anstatt wie es richtig wäre „http ://192.168.33.10:9998/_wdt/4611f7“. Dann wäre auch die CORS-Problematik nicht mehr gegeben.
Ich konnte das Problem nun so lösen, dass ich bei unserem Reverse Proxy bei allen Anfragen über Port 9998 den Header „X-FORWARDED-PORT: 9998“ hinzugefügt habe.
Außerdem muss deine IP vertrauenswürdig sein (siehe How to Configure Symfony to Work behind a Load Balancer or a Reverse Proxy (Symfony Docs)).
Des weiteren muss die Domain beim Sales-Channel auch den Port beinhalten. Also „http ://192.168.33.10:9998“ anstelle von „http ://192.168.33.10“.
Dann sollte bin/watch-storefront.sh funktionieren. Ich hoffe ich konnte weiterhelfen…