Okay - ich weiß, dass dies ein wirklich elementares Problem ist, aber ich kann es nicht herausfinden. Dies ist eine Frage zu Laravel.
Grundsätzlich habe ich meine Stylesheets in meine Standardlayoutansicht eingebettet. Ich verwende derzeit nur reguläres CSS, um sie zu verlinken, wie zum Beispiel:
<link rel="stylesheet" href="css/app.css" />
Es funktioniert hervorragend, wenn ich mich auf einer einstufigen Route wie / about befinde, funktioniert aber nicht mehr, wenn ich tiefer gehe, wie / about / me .
Wenn ich mir die Entwicklerkonsole von Chrome ansehe, werden einige der folgenden Fehler angezeigt (nur für die tieferen Routen):
Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://example.dev/about/css/app.css".
Es ist also klar, dass jetzt nach dem CSS im Ordner "about" gesucht wird - was natürlich überhaupt kein Ordner ist.
Ich möchte nur, dass es unabhängig von der Route an derselben Stelle nach den Assets sucht.
asset()
Hilfsmethode Instant of verwendenURL::asset()
. Es macht die gleiche Arbeit.Laravel 4
Der bessere und korrekte Weg, dies zu tun
CSS hinzufügen
HTML :: style wird mit Ihrem Projekt / public / folder verknüpft
JS hinzufügen
HTML :: script wird mit Ihrem Projekt / public / folder verknüpft
quelle
Sie verwenden relative Pfade für Ihre Assets, wechseln zu einem absoluten Pfad und alles wird funktionieren (fügen Sie vor "css" einen Schrägstrich hinzu.
quelle
in Laravel 5 ,
gibt es 2 Möglichkeiten , eine js - Datei in Ihrer Ansicht laden
wird unter Verwendung eines ersten html Helfer, zweite Asset Helfer verwendet.
Um den HTML-Helfer zu verwenden, müssen Sie dieses Paket zuerst über die Befehlszeile installieren:
Dann müssen Sie es erneut anfordern. Gehen Sie also zu config / app.php und fügen Sie diese Zeile dem Provider-Array hinzu
Dann müssen Sie Aliase für Ihr HTML-Paket definieren. Gehen Sie also zum Aliase-Array in config / app.php und fügen Sie dieses hinzu
Jetzt ist Ihr HTML-Helfer installiert, sodass Sie Folgendes in Ihre Blade-View-Dateien schreiben können:
Dadurch wird nach Ihrer Datei test.js in Ihrer project_root / public / js / test.js gesucht.
///////////////////////////////////////////////////////// //////////// Um
Asset-Helfer anstelle des HTML-Helfers zu verwenden, müssen Sie etw wie folgt in Ihre Ansichtsdateien schreiben:
Dadurch wird nach der Datei test.js in project_root / resources / assets / test.js gesucht
quelle
<script src="{{ url(asset('test.js')) }}"></script>
(oder<script src="{{ url(mix('test.js')) }}"></script>
wenn Sie Laravel Mix verwenden).Wenn Sie Laravel 3 und Ihre CSS / JS-Dateien in einem öffentlichen Ordner wie diesem verwenden
Dann können Sie sie in solchen Blade-Vorlagen aufrufen
quelle
Ich schlage vor, Sie setzen es auf Route Filter vor {Projekt} /application/routes.php
und Verwenden der Blade Template Engine
oder mehr über die Verwaltung von Assets-Dokumenten
quelle
in müssen
laravel 4
Sie nur so einfügen{{ URL::asset('/') }}
:Es ist dasselbe für:
quelle
Laravel 5.4 mit Mix-Helfer:
quelle
Legen Sie in Laravel 5.7 Ihre CSS- oder JS-Datei im öffentlichen Verzeichnis ab.
Für CSS:
Für JS:
quelle
Der beste Weg meiner Meinung nach, BASE-Tag in Ihren HTML-Code einzufügen
Es ist also nicht notwendig, Dinge wie zu verwenden
Schreib einfach
aus Ihrer Sicht und es wird funktionieren.
Diese Methode behandelt RESTful-URLs und statische Ressourcen als Bilder, CSS und Skripte.
quelle
Vinsa hatte es fast richtig, sollten Sie hinzufügen
und Skripte sollten ihren regulären Weg gehen
Der Grund dafür ist, dass Bilder und andere Dinge mit einem relativen Pfad wie Bildquelle oder Ajax-Anforderungen ohne den angehängten Basispfad nicht richtig funktionieren.
quelle
Wenn Sie es hart codieren, sollten Sie wahrscheinlich den vollständigen Pfad verwenden (
href="http://example.com/public/css/app.css"
) verwenden. Dies bedeutet jedoch, dass Sie die URLs für Entwicklung und Produktion manuell anpassen müssen.Eine Alternative zu den oben genannten Lösungen wäre die Verwendung
<link rel="stylesheet" href="URL::to_asset('css/app.css')" />
in Laravel 3 oder<link rel="stylesheet" href="URL::asset('css/app.css')" />
Laravel 4. Auf diese Weise können Sie Ihren HTML-Code so schreiben, wie Sie es möchten, aber Laravel kann in jeder Umgebung den richtigen Pfad für Sie generieren.quelle
Besserer Weg, wie zu verwenden,
quelle
Angenommen, Sie haben Ihren öffentlichen Ordner nicht umbenannt. Ihre CSS- und JS-Dateien befinden sich in CSS- und JS-Unterordnern im öffentlichen Ordner. Jetzt lautet Ihr Header:
quelle
Fügen Sie einfach ein weiteres Problem hinzu:
Wenn Sie mit
/public
aus Ihrem Projekt entfernen möchten.htaccess
,dann können Sie dies verwenden, [
public
Vorher hinzufügen/css
innenasset()
][Manchmal ist es nützlich.]
quelle
Für Laravel 4: {!! für eine doppelte geschweifte Klammer {{
und für die Version ab Laravel 5: Sie können {!! von {{und !!} von}} in der High-End-Version
Wenn Sie JavaScript in einem benutzerdefinierten Verzeichnis abgelegt haben.
Zum Beispiel, wenn Ihr
jQuery-2.2.0.min.js
unter dem Verzeichnis gespeichert ,resources/views/admin/plugins/js/
dann von der*.blade.php
werden Sie am Ende des Abschnitts hinzufügen können , wieDa die Higher-End-Version auch die Lower-End-Version unterstützt und nicht umgekehrt
quelle
Der bessere und korrekte Weg, dies zu tun:
quelle
In Laravel 5.8
habe gerade den Trick für mich gemacht.
quelle
Legen Sie Ihre Skriptdatei in einem öffentlichen Verzeichnis ab und verwenden Sie sie (z. B. für userFunctions.js).
quelle