Ich versuche, ein HTML-Widget mit Laravel-Klinge ähnlich der folgenden (widget.blade.php) zu erstellen:
%Vor%und ich benutze das Widget in einem anderen Blade wie:
%Vor%Das Problem ist, wenn ich das Widget mehrmals auf einer Seite verwende, werden die "Skripte" und "Stile" mehrmals wiederholt.
Wie kann ich verhindern, dass Laravel "Skripte" und "Stile" mehrfach anwendet?
In der folgenden Antwort ging ich davon aus, dass Sie mit der Blade-Erweiterung vertraut sind. Diese Methode wurde auf Laravel 5.2 und 5.3 getestet (siehe Hinweis unten).
Nach dem Test Ismail RBOUHs Antwort (also bitte lesen), scheint es zwei Probleme mit der Lösung zu geben:
1- Die Variable $ isDisplayed befindet sich nicht in demselben Bereich wie die anderen eingeschlossenen Widgets, so dass jeder @include seine Skripte zum Stapeln verschiebt. Als Ergebnis ändere ich es zu:
%Vor%2- Die Lösung beschränkt die Verwendung von @pushonce auf ein Widget. d. h. im Falle von 2 oder mehr Widgets (widget1.blade.php, widget2.blade.php, ...) verhindert es, andere Widgets Skripte zu schieben. Also, ich füge Domäne zu @pushonce mit dem folgenden Code hinzu:
%Vor%Verwendung:
widget1.blade.php
%Vor%widget2.blade.php
%Vor%HINWEIS FÜR L 5.3: Ändere die folgende Zeile:
%Vor%bis
%Vor% Eine Lösung besteht darin, Blade zu erweitern, indem Sie wie folgt eine pushonce
-Direktive erstellen:
Er muss zu AppServiceProvider
boot
method hinzugefügt werden.
Verwendung:
%Vor%Bitte testen Sie es und lassen Sie mich wissen, wenn das Hilfe ist.