Was ist in Laravel 5 der Unterschied zwischen {{url}} und {{asset}}?

Lesezeit: 3 Minuten

Benutzeravatar von 无名小路
无名小路

Ich finde manchmal ist beides OK? Was ist also der wirkliche Unterschied?

Zum Beispiel,

<link rel="stylesheet" href="https://stackoverflow.com/questions/39217975/{{asset("resources/views/admin/style/css-ui.admin.css')}}">

und

<link rel="stylesheet" href="https://stackoverflow.com/questions/39217975/{{url("resources/views/admin/style/font/css/font-awesome.min.css')}}">

diese beiden Formen sind beide in Ordnung.

Also, was sind die Unterschiede?

Entscheiden welche URL-Helfer benutzen

Berücksichtigen Sie den erforderlichen URL-Typ / wie die URL verwendet wird. Einer der Vorteile separater Hilfsmethoden für jeden URL-Typ ist, dass sie unterschiedliche Behandlungslogik haben können. Zum Beispiel könnten Assets (z. B. CSS, Bilder usw.) eine Überprüfung umfassen, ob die Datei im Dateisystem vorhanden ist, erfordern jedoch nicht die Art der Analyse, die eine Route erfordern würde, da die Route Parameter aufweisen kann.

URL() Erzeugt eine absolute URL zum angegebenen Pfad (Code)

  • Für statische URLs verwenden (was selten sein sollte).
  • Akzeptiert ein Array von Parametern, die codiert und am Ende der Domäne hinzugefügt werden.
  • Konserviert alle URL-Abfragezeichenfolge.

    {{ url('search') }}
    // http://www.example.com/search
    
    {{ url('search', ['qevo', 'laravel']) }}
    // http://www.example.com/search/qevo/laravel
    

Anlage() Generiert eine URL zu einem Anwendungsobjekt (Code)

  • Verwenden Sie für Dateien, die direkt bereitgestellt werden, z. B. CSS, Bilder, Javascript.
  • Akzeptiert nur einen direkten Pfad.

    {{ asset('css/app.css') }}
    // http://www.example.com/css/app.css
    

Route() Ruft die URL zu einer benannten Route ab (Code)

  • Verwenden Sie für jede Route (jede Route sollte benannt werden, um zukunftssichere Pfadänderungen zu unterstützen).
  • Erfordert benannte Strecken.
  • Akzeptiert ein assoziatives Array für Routenparameter.
  • Ermöglicht das Überschreiben der relativen Route gegenüber der absoluten Route (Standard).

    {{ route('user.profile', ['name'=>'qevo']) }}
    // http://www.example.com/user/qevo/profile
    
    {{ route('user.profile', ['name'=>'qevo'], false) }}
    // /user/qevo/profile
    

  • Ich stehe korrigiert und habe meine Antwort entfernt, um Verwirrung zu vermeiden! Danke für die Korrektur.

    – Connor Gurney

    30. August 2016 um 4:13 Uhr

  • @ConnorGurney Bitte überlegen Sie beim nächsten Mal, Ihre Antwort zu bearbeiten, weil 1) sie nicht ganz falsch war 2) dies ein Grund dafür ist, dass es eine Bearbeitung gibt 3) Antworten, die sich gegenseitig bestätigen, einen Wert haben 4) es eine gute Praxis ist. Vielen Dank für Ihren Beitrag zum kollektiven Wissen. Bitte höre nicht auf.

    – Qevo

    30. August 2016 um 4:19 Uhr

  • Ich habe es wiederhergestellt und bearbeitet. Danke für die Unterstützung! Alles Gute.

    – Connor Gurney

    30. August 2016 um 16:43 Uhr

Benutzeravatar von Connor Gurney
Connor Gurney

{{url}} ermöglicht es Ihnen, einen Link zu einer URL auf Ihrer Website zu erstellen. Ein weiterer Vorteil ist die Tatsache, dass Sie den zweiten Parameter auf ein Array mit darin enthaltenen Abfragezeichenfolgeparametern setzen können.

{{asset} ermöglicht es Ihnen beispielsweise, auf ein Asset in Ihrem öffentlichen Verzeichnis zu verlinken css/main.css.

  • URL() hat nichts mit benannten Routen zu tun.

    – Qevo

    30. August 2016 um 4:09 Uhr

Benutzeravatar von tisuchi
Tisuchi

URL::route Ruft die URL zu einer benannten Route ab. Also in Ihrem Fall, wenn Sie Ihre Route so benennen:

Route::get('/account/register', [
    'name' => 'register', 
    'uses' => '[email protected]'
]);

dann können Sie verwenden

<a href="https://stackoverflow.com/questions/39217975/{{ URL::route("register') }}" >Register 1</a>

in Blade-Vorlagen.

  • Wahrscheinlich eine bessere Antwort als meine – gute Beispiele! Danke, dass du auf dem aufbaust, was ich geschrieben habe.

    – Connor Gurney

    30. August 2016 um 3:02 Uhr

  • Frage fragt nach URL() und Anlage().

    – Qevo

    30. August 2016 um 4:22 Uhr

Benutzeravatar von Fefar Ravi
Fefar Ravi

asset() Asset-Funktion generiert eine URL für ein Asset unter Verwendung des aktuellen Anforderungsschemas.
Bsp.: asset(‘images/img.png’)

url() Die URL-Funktion generiert eine vollständig qualifizierte URL zum angegebenen Pfad.

Bsp.: url(‘admin/users’)

1430370cookie-checkWas ist in Laravel 5 der Unterschied zwischen {{url}} und {{asset}}?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy