[TEST-3] Undefined global variable $LEAFLET_LIBRARIES - Weiterhin vorhanden
Opened this issue · 6 comments
Hallo,
ich habe die Erweiterung installiert und hatte schon Probleme mit $LEAFLET_LIBRARIES
, weil diese nicht definiert sind. Bin in das contao/config.php
und hab es provisorisch definiert.
Danach kann man Backend und Frontend normal aufrufen.
Allerdings, sobald man eine Karte definieren möchte, bekommt man im Backend keine Kartenanzeige und viele JS Fehler.
Refused to apply style from 'https://.......com/assets/leaflet/libs/leaflet/leaflet.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
GET https://.......com/assets/leaflet/libs/leaflet/leaflet.js net::ERR_ABORTED 404 (Not Found)
Refused to apply style from 'https://........com/assets/leaflet/libs/control-geocoder/Control.Geocoder.min.css' because its MIME type ('text/html') is not a supported stylesheet MIME type, and strict MIME checking is enabled.
Refused to execute script from 'https://........com/assets/leaflet/libs/leaflet/leaflet.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
GET https://........com/assets/leaflet/libs/control-geocoder/Control.Geocoder.min.js net::ERR_ABORTED 404 (Not Found)
Refused to execute script from 'https://........com/assets/leaflet/libs/control-geocoder/Control.Geocoder.min.js' because its MIME type ('text/html') is not executable, and strict MIME type checking is enabled.
Uncaught ReferenceError: L is not defined
at contao?act=edit&do=leaflet_map&id=1&ref=39FuuOUT&rt=e702d6ea1e55aaa6f36.Ur71neXth1x9C_U9xP_81Gflm1J9gy_w7fz6_ObujN8.YP-W8reyzmwzP8BUirONuD7W3zwW9VWxj7uUrZbawr4azqfQh4nqcRkzvA:288:15
Auch in Frontend taucht der Fehler
caught ReferenceError: L is not defined
Fix hier löst das Problem nicht.
Contao Version: 4.13.21 Map Version 3.2.4
Für diejenigen, die ebenfalls auf dasselbe Problem stoßen.
Die Erweiterung kann einfach die libs
nicht unter assets
generieren.
Jede Abhängigkeit ist auch irgendwie anders aufgebaut. Nachdem ich mit meinen Reparaturversuchen gescheitert bin, habe ich die Einträge aus der contao-leaflet-libraries/module/config/config.php
in die globale config.php
kopiert und die assets
von Hand in assets/leaflet/libs
kopiert, damit die Erweiterung überhaupt funktioniert.
Ist zwar nicht Update sicher, aber da ich eilig habe und nicht warten kann, ist es momentan die beste und einfachste Lösung.
Das Problem durfte ich auch schon kennenlernen. Mit den bekannten Hacks habe ich es geschafft das Modul zu installieren (Contao 4.13.24 + Leaflet 3.2.4) und nachdem ich die libs manuell kopiert habe, wurde mir zumindest im Backend die Karte korrekt dargestellt.
Im Frontend ist es aber noch das selbe: "Uncaught ReferenceError: L is not defined". Lt. Stackoverflow soll es an der Reihenfolge liegen, wie die CSS/JS Dateien eingebunden werden. Ich bin aber gerade noch zu blöd um herauszufinden, wie ich das korrigiere.
Gibt es da noch Ideen / Lösungsansätze? Ich bin auch absolut offen für dreckige Workarounds (muss es zumindest in meiner lokalen DEV Umgebung zum laufen bekommen).
Die Karte lädt nicht im Frontend weil die nötigen JS/CSS Dateien nicht geladen werden. Ich habe die folgenden Globals in der system/config/localconfig.php
eingetragen:
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet/leaflet.js|static';
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet-omnivore/leaflet-omnivore.min.js|static';
$GLOBALS['TL_JAVASCRIPT'][] = 'assets/leaflet/libs/leaflet-providers/leaflet-providers.min.js|static';
$GLOBALS['TL_CSS'][] = 'assets/leaflet/libs/leaflet/leaflet.css';
Kann sein das dass nicht alle sind, aber für mich lädt die Karte im Frontend mit Layern aus "Vorkonfigurierter Karte", Markern und Popups.
Damit es für jeden verständlich ist.
Fehler:
PHP Warning: Undefined global variable $LEAFLET_LIBRARIES in /var/www/vhosts/..../domain.com/vendor/netzmacht/contao-leaflet-maps/src/Frontend/Assets/LibrariesConfiguration.php on line 54 12:47:05 CRITICAL [console] Error thrown while running command "cache:warmup". Message: "ArrayIterator::__construct(): Argument #1 ($array) must be of type array, null given" ["exception" => TypeError { …},"command" => "cache:warmup","message" => "ArrayIterator::__construct(): Argument #1 ($array) must be of type array, null given"]
Lösung:
contao-leaflet-libraries/module/config/config.php
inroot
Verzeichniscontao/config/config.php
übertragen. Eventuell muss diese Ordnerstruktur und Datei neu erstellt werden.- Aus der Repository, die
libs
unterassets/leaflet/libs
kopieren. Auch hier kann es sein, dass die Ordnerstruktur neu angelegt werden muss.
Cache leeren und schon funktioniert alles wieder.
Hier muss der Entwickler sich Zeitnehmen und schauen, woran das Problem liegt.
Das ist natürlich kein Dauerzustand, aber dieser Workaround funktioniert für mich, bis der Bugfix herauskommt.
@havutcuoglu please post your project's composer.json
.