Formation PUB030 : Laravel, 2019 Les liens et les URL

24.5 Fonctions d'aide pour générer un URL vers un fichier de ressource (image, feuille de style, etc.)


Lorsqu'on travaille avec un cadre d'application MVC, il n'est pas possible d'utiliser des adresses relatives pour accéder à différentes ressources : pages Web, images, fichiers CSS, fichiers JavaScript, etc.

En effet, la page d'accueil est généralement située au moins un dossier virtuel plus bas que les autres pages (ex : https://mondomaine.com pour l'accueil et https://mondomaine.com/produits pour la liste des produits).

Il faut donc utiliser des fonctions d'aide (en anglais : helper functions) pour y parvenir.

URL d'une image ou autre type de fichier

La fonction d'aide asset() permet de générer un URL menant vers une image, une feuille de style ou un script. On devra spécifier le chemin relatif à partir de la racine du site Web (dossier public).

La fonction retournera l'URL absolu du fichier, incluant le nom de domaine.

Syntaxe Laravel

asset('cheminRelatif/fichier');

Ex :

Vue Laravel (Blade)

<img src="{{ asset('medias/fr/Logo.png') }}" alt="Mon entreprise">

Ici, la source de l'image sera https://mondomaine.com/medias/fr/Logo.png, ce qui correspond au fichier C:\Users\monnom\Documents\CodeLaravel\monprojet\public\medias\fr\Logo.png.

URL d'un fichier géré par Laravel Mix

Si vous travaillez avec Laravel Mix pour effectuer différentes tâches, dont la compilation et la concaténation de fichiers CSS et JavaScript, vous avez l'opportunité de demander à Laravel Mix d'ajouter aux fichiers une chaîne aléatoire afin de forcer le rafraîchissement du cache du navigateur lorsqu'un fichier est changé.

Par exemple, vous pouvez concaténer toutes les feuilles de style en un seul fichier qui sera placé à cet endroit : public\css\all.697dc39aa8ab2343fa74e2e14e48fdde.css.

La fonction d'aide mix() permet de charger le bon fichier sans avoir à se soucier de cette chaîne. Le chemin à fournir doit être relatif à la racine du site Web (dossier public). Sa valeur de retour est un URL relatif.

Syntaxe Laravel

mix('/cheminRelatif/fichier');

Ex :

Vue Laravel (Blade)

<link rel="stylesheet" href="{{ mix('/css/all.css') }}">

Ceci générera une balise du genre <link rel="stylesheet" href="/css/all.697dc39aa8ab2343fa74e2e14e48fdde.css">. Le numéro séquentiel sera assurément différent de celui présenté ici. De plus, il changera quand le fichier css sera regénéré.

Si vous avez besoin d'un URL absolu, il est possible de combiner la fonction d'aide mix() avec la fonction d'aide asset().

Ex :

Vue Laravel (Blade)

<link rel="stylesheet" href="{{ asset(mix('css/all.css')) }}">

Cette fois, la balise générée ira comme suit : <link rel="stylesheet" href="https://mondomaine.com/css/all.697dc39aa8ab2343fa74e2e14e48fdde.css">

URL d'un fichier géré par Elixir (avant Laravel 5.4)

Avant Laravel 5.4, les différents tâches sur les fichier JavaScripts, feuilles de styles, images, etc. était effectuée avec Laravel Elixir.

Si vous travaillez avec une ancienne version de Laravel, la fonction d'aide elixir() permet de charger le bon fichier sans avoir à se soucier de cette chaîne. Le chemin à fournir doit être relatif au dossier public\build.

Syntaxe Laravel

elixir('cheminRelatif/fichier');

Ex :

Vue Laravel (Blade)

<link rel="stylesheet" href="{{ elixir('css/all.css') }}">

Pour plus d'information

« Helper Functions - action() ». Laravel. https://laravel.com/docs/master/helpers#method-action

« Helper Functions - route() ». Laravel. https://laravel.com/docs/master/helpers#method-route

« Helper functions - asset() ». Laravel. https://laravel.com/docs/master/helpers#method-asset

« Get Current URL in a Blade View ». Easy Laravel. http://easylaravel.com/check-current-url

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre